Рубрики
Без рубрики

Как отсортировать список на Java

Список сортировки Java, Естественная сортировка списка в Java с использованием метода Collections.sort() с использованием сопоставимого. Как отсортировать список объектов с помощью компаратора в Java.

Автор оригинала: Pankaj Kumar.

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

Список Java похож на массивы, за исключением того, что длина списка является динамической и он поставляется в рамках коллекции Java . На самом деле, List-это интерфейс, и большую часть времени мы используем одну из его реализаций, такую как ArrayList или LinkedList и т. Д.

Список сортировки Java

Здесь мы узнаем, как сортировать список объектов в Java. Мы можем использовать метод Collections.sort() для сортировки списка в естественном порядке возрастания. Все элементы в списке должны реализовывать Сопоставимый интерфейс, в противном случае будет выдано исключение IllegalArgumentException .

Давайте рассмотрим краткий пример сортировки списка строк.

package com.journaldev.sort;

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

public class JavaListSort {

    /**
     * This class shows how to sort ArrayList in java
     * @param args
     */
    public static void main(String[] args) {
        List strList = new ArrayList();
        strList.add("A");
        strList.add("C");
        strList.add("B");
        strList.add("Z");
        strList.add("E");
        //using Collections.sort() to sort ArrayList
        Collections.sort(strList);
        for(String str: strList) System.out.print(" "+str);
    }

}

Как вы можете видеть, мы используем метод Collections.sort() для сортировки списка строк. Класс String реализует Сопоставимый интерфейс.

Выход:

Java Сортирует список объектов

Давайте рассмотрим другой пример, в котором мы будем сортировать список пользовательских объектов. Обратите внимание, что класс должен реализовывать сопоставимый интерфейс.

package com.journaldev.sort;

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

public class JavaSortListObject {

	public static void main(String[] args) {
		List dl = new ArrayList<>();
		dl.add(new Data(2));
		dl.add(new Data(3));
		dl.add(new Data(1));
		System.out.println("Original List::"+dl);
		Collections.sort(dl);
		System.out.println("Naturally Sorted List::"+dl);

	}

}

class Data implements Comparable {

	private int id;

	public Data(int i) {
		this.id = i;
	}

	@Override
	public int compareTo(Data d) {
		return this.id - d.getId();
	}

	public int getId() {
		return id;
	}

	@Override
	public String toString() {
		return "Data{"+this.id+"}";
	}
}

Выход:

Original List::[Data{2}, Data{3}, Data{1}]
Naturally Sorted List::[Data{1}, Data{2}, Data{3}]

Сортировка списка на Java с помощью компаратора

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

Поскольку Comparator является функциональным интерфейсом , мы можем использовать лямбда-выражения для записи его реализации в одной строке.

Collections.sort(dl, (d1, d2) -> {
	return d2.getId() - d1.getId();
});
System.out.println("Reverse Sorted List using Comparator::" + dl);

Выход:

Объекты Списка Сортировки Java – Компаратор

Резюме

Метод сортировки класса коллекций() используется для сортировки списка в Java. Мы можем отсортировать список в естественном порядке, где элементы списка должны реализовывать сопоставимый интерфейс. Мы также можем передать реализацию компаратора для определения правил сортировки.

Ссылка: API Doc