JavaRush /Java блог /Random /Кофе-брейк #136. Сортировка массива в порядке возрастания...

Кофе-брейк #136. Сортировка массива в порядке возрастания или убывания с помощью Arrays.sort(). В чем разница между интерфейсами List и Set?

Статья из группы Random

Сортировка массива в порядке возрастания или убывания с помощью Arrays.sort()

Источник: FreeCodeCamp Благодаря этой публикации вы узнаете способы сортировки массива в Java по возрастанию или убыванию. Кофе-брейк #136. Сортировка массива в порядке возрастания или убывания с помощью Arrays.sort(). В чем разница между интерфейсами List и Set? - 1В Java мы используем массивы для хранения набора переменных (с одинаковым типом данных) в одной переменной. Но иногда значения, хранящиеся в массиве, появляются в случайном порядке. Благодаря классу Arrays в Java у нас есть несколько способов управления массивами, в том числе их сортировки. Один из методов, которые мы будем использовать из класса Arrays, — это метод sort(), который сортирует массив в порядке возрастания. Для сортировки массива в порядке убывания используется метод reverseOrder() класса Collections в Java.

Как отсортировать массив в порядке возрастания в Java с помощью Arrays.sort()

Вот пример того, как мы можем использовать метод sort() для сортировки массива в порядке возрастания.

import java.util.Arrays;

class ArraySort {
    public static void main(String[] args) {
        int[] arr = { 5, 2, 1, 8, 10 };
        Arrays.sort(arr);
        
        for (int values : arr) {
            System.out.print(values + ", ");
            // 1, 2, 5, 8, 10,
        }
    }
}
Первое, что мы сделали в приведенном выше примере, — это импортировали класс Arrays: import java.util.Arrays;. Так мы получили доступ ко всем методам класса Arrays. Затем мы создали массив с числами в случайном порядке: int[] arr = { 5, 2, 1, 8, 10 };. Чтобы отсортировать этот массив в порядке возрастания, мы передали массив в качестве параметра методу sort(): Arrays.sort(arr);. Обратите внимание, что класс Arrays написан первым перед доступом к методу sort() с использованием записи через точку. Наконец, мы создали цикл и напечатали массив в консоли. В результате получился отсортированный массив: 1, 2, 5, 8, 10. А сейчас давайте поговорим о сортировке массива по убыванию.

Как отсортировать массив по убыванию в Java с помощью Collections.reverseOrder()

Чтобы отсортировать массив в порядке убывания, следует использовать reverseOrder(), к которому можно получить доступ из класса Collections. Мы по-прежнему будем использовать Arrays.sort();, но в этом примере он будет принимать два параметра — массив для сортировки и Collections.reverseOrder().

import java.util.Arrays;
import java.util.Collections;

class ArraySort {
    public static void main(String[] args) {
        Integer[] arr = { 5, 2, 1, 8, 10 };
        Arrays.sort(arr, Collections.reverseOrder());
        
        for (int values : arr) {
            System.out.print(values + ", ");
            // 10, 8, 5, 2, 1,
        }
    }
}
Первым делом мы импортировали классы Arrays и Collections, потому что мы будем использовать методы, предоставляемые этими классами. Затем мы создали массив чисел в случайном порядке: Integer[] arr = { 5, 2, 1, 8, 10 };. Как можно заметить, мы использовали Integer[] вместо int[], как в предыдущем примере. Иначе возникнет ошибка. Чтобы отсортировать массив по убыванию, мы сделали вот так: Arrays.sort(arr, Collections.reverseOrder());. Первый параметр — это массив arr, который будет отсортирован в порядке возрастания. Второй параметр — Collections.reverseOrder() — затем изменит порядок отсортированного массива, чтобы он располагался в порядке убывания. При циклическом просмотре и печати массив будет выглядеть так: 10, 8, 5, 2, 1.

Заключение

В этой статье мы обсудили сортировку массивов в Java — как их можно сортировать по возрастанию или по убыванию. Для этого мы можем использовать метод sort(), к которому можно получить доступ из класса Arrays. Метод sort() принимает массив для сортировки в качестве параметра. Чтобы отсортировать массив в порядке убывания, мы использовали метод reverseOrder(), предоставляемый классом Collections. Он передается в качестве второго параметра в метод sort(), чтобы отсортированный массив можно было переупорядочить в порядке убывания.

Java Collection. В чем разница между интерфейсами List и Set?

Источник: Rrtutors List и Set являются интерфейсами Java для расширения интерфейса Collection. В этой публикации мы рассмотрим ключевые различия между ними, а также варианты их применения.

Различия между интерфейсами Set и List в Java

Давайте определим ключевые различия между интерфейсами List и Set на основе следующих ключевых параметров:

Реализация

List реализуют ArrayLists, тогда как HashSet реализуют Set.

Индексация

Вы можете использовать ListIterator для перемещения по List как вперед, так и назад, но не по Set. Вместо этого используйте Iterator (который работает как с List, так и с Set).

Порядок

Интерфейс Set не поддерживает какой-либо конкретный заданный порядок. Коллекция вида Set уже является отсортированной по своему правилу и ее просто так нельзя отсортировать. List — это упорядоченный список. Объекты хранятся в порядке их добавления в список. Доступ к элементам списка осуществляется по индексу.

Объект Null

List не имеют никаких ограничений и поддерживают добавление нулевых значений (Null values), в то время как Set допускает не более одного значения null.

Дубликаты

List могут содержать дубликаты, а Set — нет. Set не допускает дублирования элементов, поскольку все его элементы должны быть уникальными. Если вы вставите повторяющийся элемент в Set, существующее значение будет перезаписано.

Когда следует использовать List и Set?

Set — лучший выбор, когда вам просто нужно сохранить уникальные значения, поскольку он как раз для этого и предназначен. Но если вы хотите сохранить порядок вставки, несмотря на дублирование, лучше всего выбрать List.

Пример Set


import java.util.ArrayList;

import java.util.LinkedList;

import java.util.List;

public class ListExample {

            public static void main(String[] args) {

                        List<String> al = new ArrayList<String>();

                          al.add("Rohit");

                          al.add("Panjab");

                          al.add("Kamir");

                          System.out.println("My ArrayList Items: ");

                          System.out.print(al);

                          List<String> ll = new LinkedList<String>();

                          ll.add("Shobit");

                          ll.add("Raul");

                          ll.add("Ketel");

                          System.out.println("\n My LinkedList Items: ");

                          System.out.print(ll);

            }

}

Пример List


import java.util.HashSet;

import java.util.Set;

import java.util.TreeSet;

public class SetExample {

            public static void main(String[] args) {

                          int myList[] = {60, 70, 80, 40 };

                            Set<Integer> dispSet = new HashSet<Integer>();

                            try{

                              for(int i = 0; i<4; i++){

                                dispSet.add(myList[i]);

                              }

                              System.out.println(dispSet);

                              TreeSet<Integer> treeset = new TreeSet<Integer>(dispSet);

                              System.out.println("Sorting in Asceding order:");

                              System.out.println(treeset);

                            }

                            catch(Exception e){

                                e.printStackTrace();

                            }

            }

}
Комментарии (5)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Alexey Buryak Уровень 15
17 января 2023
А почему, когда мы ставим int, то выдает ошибку, мне, как новичку это не понятно 🤔
Ramil' Bikbaev Уровень 31
19 ноября 2022
Кажется что примеры для List b Set перепутаны?