Как отсортировать список в Java – пример сортировки списка Java

Иногда данные нужно разместить в определенном порядке, чтобы их было легче понять, искать и обрабатывать.

Мы называем этот процесс сортировкой. Сортировка означает упорядочение данных в определенном порядке по определенным критериям. Можно сортировать различные типы данных, включая числа, строки и объекты. Java предоставляет встроенные методы сортировки, например, классы Collections.

Сортировка данных в Java может быть полезна в программе электронной коммерции, где пользователю нужно отобразить список продуктов. Продукты можно сортировать различными способами в зависимости от требований, устанавливаемых пользователем, таких как цена, рейтинг, марка и т.д.

К примеру, если пользователь хочет видеть все продукты, отсортированные по цене в порядке возрастания, программа может использовать алгоритм сортировки, чтобы упорядочить продукты в таком порядке. Таким образом, когда пользователь просматривает продукты, он сможет сначала увидеть самые дешевые продукты и принять решение о покупке.

В этой статье будут рассмотрены разные методы сортировки списка в Java.

Как использовать Collections.Sort() Метод на Java

Одним из самых распространенных способов сортировки данных в Java является использование Collections.sort() метод. По умолчанию он сортирует перечень в порядке возрастания.

Вот пример того, как использовать Collections.sort() метод сортировки списка целых чисел:

import java.util.Collections;
import java.util.List;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<Integer>();
        numbers.add(3);
        numbers.add(1);
        numbers.add(4);
        numbers.add(2);
        
        Collections.sort(numbers);
        
        System.out.println("Sorted List: " + numbers);
    }
}

Вышеприведенный код создает список целых чисел, добавляет в него четыре числа, сортирует список, а затем печатает отсортированный список на консоли.

Использует классы из стандартной библиотеки Java, в т.ч. java.util.Collections, java.util.Listи java.util.ArrayList для выполнения операций.

Выход приведенного выше кода показан ниже:

//Output
Sorted List: [1, 2, 3, 4]

Вы также можете сортировать список настраиваемых объектов с помощью Collections.sort() метод. Для этого вам нужно будет создать компаратор и передать его как аргумент в Collections.sort() метод.

Компаратор — это объект, реализующий java.util.Comparator интерфейс. Он имеет единственный метод под названием compare() который сравнивает два объекта и возвращает целое число, что указывает их относительный порядок.

Вот пример использования компаратора для сортировки списка настраиваемых объектов:

import java.util.Collections;
import java.util.List;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        List<Person> people = new ArrayList<>();
        people.add(new Person("Alice", 25));
        people.add(new Person("Bob", 30));
        people.add(new Person("Charlie", 20));
        
        Collections.sort(people, new PersonComparator());
        
        System.out.println("Sorted List: " + people);
    }
}

class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String getName() {
        return name;
    }
    
    public int getAge() {
        return age;
    }
    
    @Override
    public String toString() {
        return name + " (" + age + ")";
    }
}

class PersonComparator implements java.util.Comparator<Person> {
    @Override
    public int compare(Person a, Person b) {
        return a.getAge() - b.getAge();
    }
}

Приведенный выше код создает список объектов «Человек», добавляет несколько объектов «Человек» в список, сортирует список с помощью специального компаратора (PersonComparator), а затем распечатает отсортированный список.

The Person класс имеет два поля, name и age, и методы получения для этих полей The PersonComparator класс реализует интерфейс Comparator и заменяет метод сравнения для сортировки Person предметов по возрасту.

Выход этой программы будет следующим:

//output
Sorted List: [Charlie (20), Alice (25), Bob (30)]

Лучше всего использовать Collections.sort() метод, когда у вас есть коллекция объектов, которые нужно сортировать на основе одного или нескольких полей.

К примеру, если у вас есть коллекция объектов Employee и вы хотите отсортировать их по фамилии, вы можете воспользоваться Collections.sort() и передать специальный компаратор, сравнивающий фамилии объектов Employee.

Как использовать метод List.Sort() в Java

Этот способ сортирует перечень в порядке возрастания. Вот как это работает:

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(5, 3, 2, 4, 1);
        numbers.sort(null);
        System.out.println(numbers); // prints [1, 2, 3, 4, 5]
    }
}

В приведенном выше основном методе с помощью Arrays.asList метод. Затем код сортирует этот список чисел с помощью стандартного метода сортировки, поскольку null передается методу сортировки.

Наконец, отсортированный список печатается на консоли с помощью System.out.println метод, который выведет[1, 2, 3, 4, 5]».

List.sort() полезно, когда у вас есть список элементов, которые нужно сортировать. К примеру, если у вас есть список строк и вы хотите отсортировать их в алфавитном порядке, вы можете воспользоваться List.sort() метод.

List.sort() является методом экземпляра класса List и сортирует элементы в порядке, определяемом их природным порядком или заданным Icomparer внедрение.

Как использовать stream.sorted() Метод на Java

В Java 8 и выше вы можете использовать API потока отсортировать список. Stream API предоставляет способ сортировки, который можно использовать для сортировки элементов потока.

Вот пример сортировки списка целых чисел посредством потока:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {

        List<Integer> numbers = Arrays.asList(5, 3, 2, 4, 1);
        List<Integer> sortedList = numbers.stream().sorted().collect(Collectors.toList());
        System.out.println(sortedList); // prints [1, 2, 3, 4, 5]

    }
}

В приведенном выше примере список номеров превращается в поток с помощью stream() метод. The sorted() затем в потоке вызывается метод сортировки элементов. The collect(Collectors.toList()) метод используется для сбора отсортированных элементов в список. Результатом будет новый список, содержащий отсортированные элементы. Результатом будет «[1, 2, 3, 4, 5]».

stream.sorted() лучше использовать, когда у вас есть поток элементов, которые нужно отсортировать. К примеру, если у вас есть поток целых чисел и вы хотите отсортировать их в порядке возрастания, вы можете воспользоваться stream.Sorted() метод.

Вывод

В этом учебнике вы узнали, что в Java существует несколько способов сортировки списка: Collections.sort() метод, в stream.sorted() метод, и List.sort() метод. Лучший способ использования зависит от конкретных требований обсуждаемой выше задачи.

Надеюсь, эта статья предоставила вам правильную информацию о том, как сортировать список в Java.

Счастливого кодирования!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *