logo

Как да сортирате списък в Java

Можем да използваме следните методи за сортиране на списъка:

урок за hadoop
  • Използване на метода stream.sorted().
  • Използване на метод Comparator.reverseOrder().
  • Използване на метод Comparator.naturalOrder().
  • Използване на метода Collections.reverseOrder().
  • Използване на метода Collections.sort().

Java Stream интерфейс

Интерфейсът на Java Stream предоставя два метода за сортиране на списъка:

sorted() метод

Интерфейсът на потока предоставя метод sorted() за сортиране на списък. Той е дефиниран в интерфейса Stream, който присъства в пакет java.util . Връща поток, сортиран според естествения ред. Ако елементите не са сравними, той хвърля java.lang.ClassCastException. Сигнатурата на метода е:

 Stream sorted() 

Параметър

T: Това е вид елемент на потока.

Java Stream.sorted (компаратор за сравнение)

Той също така връща поток, сортиран според предоставения компаратор. Той е стабилен за подреден поток. Сигнатурата на метода е:

 Stream sorted(Comparator comparator) 

Параметри

  • T е типът елемент на потока.
  • компаратор, който да се използва за сравняване на елементи

Пример

В следния пример сме използвали следните методи:

структура на данни
  • В Java 8 stream() е API, използван за обработка на колекции от обекти.
  • Методът collect() се използва за получаване на елементи от поток и съхраняването им в колекция.
  • toList() връща колектора, който събира всички входни елементи в списък, в ред на среща.

Пример

 import java.util.*; import java.util.stream.*; public class SortListExample1 { public static void main(String[] args) { //returns a list view List slist = Arrays.asList('Tanu', 'Kamal', 'Suman', 'Lucky', 'Bunty', 'Amit'); List sortedList = slist.stream().sorted().collect(Collectors.toList()); sortedList.forEach(System.out::println); } } 

Изход:

Как да сортирате списък в Java

Java Comparator.reverseOrder() метод

ReverseOrder() е метод на интерфейса на Comparator, който е дефиниран в пакета java.util. Методът връща компаратор, който налага обратното на естествения ред. Той хвърля NullPointerException при сравняване на null. Сигнатурата на метода е:

 static <t extends comparable> Comparator reverseOrder() </t>

Comparable също е интерфейс, принадлежащ към пакет java.lang.

Параметри

T: сравним тип елемент за сравнение.

Пример

палиндром в java
 import java.util.*; import java.util.stream.Collectors; public class SortListExample2 { public static void main(String[] args) { //returns a list view List slist = Arrays.asList(&apos;78&apos;, &apos;a&apos;, &apos;m&apos;, &apos;b&apos;, &apos;z&apos;, &apos;c&apos;, &apos;12&apos;, &apos;l&apos;, &apos;1&apos;); ListsortedList=slist.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()); sortedList.forEach(System.out::println); } } 

Изход:

Как да сортирате списък в Java

Java Comparator.naturalOrder()

Методът връща компаратор, който сравнява сравнимите обекти в естествения ред. Върнатият сравним елемент може да бъде сериализиран. Когато сравняваме null, той хвърля NullPointerException. Той е от Java 8. Сигнатурата на метода е:

 Static <t extends comparable> Comparator naturalOrder() </t>
  • Методът сортира елементите в естествен ред (възходящ ред).
  • Поставя нула в горната част, ако има такава.
  • Той поставя елементите с главни букви първи в естествения ред, след това малките букви в естествения ред, ако списъкът има както малки, така и главни букви.

Параметри

T: Сравним тип елемент за сравнение.

Пример

 import java.util.*; public class SortListExample3 { public static void main(String[] args) { List country = Arrays.asList(&apos;Russia&apos;, &apos;India&apos;, &apos;China&apos;, &apos;Japan&apos;, &apos;&apos;, &apos;Ghana&apos;); List country1 = Arrays.asList(&apos;Russia&apos;,&apos;india&apos;, &apos;China&apos;, &apos;Japan&apos;, &apos;&apos;, &apos;ghana&apos;); System.out.println(country); //prints the same list as we define country.sort(String.CASE_INSENSITIVE_ORDER); //sorts the list in case insensitive order System.out.println(country1); country.sort(Comparator.naturalOrder()); //sorts list in ascending order System.out.println(country); //sorts list in ascending order (null, capital letter and small letter) country1.sort(Comparator.naturalOrder()); System.out.println(country1); } } 

Изход:

Как да сортирате списък в Java

Метод на Java Collections.reverseOrder().

Това е методът на класа на Java Collections, който принадлежи към пакет java.lang. Той връща компаратор, който налага обратен на естествения ред. Сигнатурата на метода е:

 public static Comparator reverseOrder() 

Параметри

10 от 50.00

Класът на обектите, сравнявани от компаратора.

Пример

 import java.util.Arrays; import java.util.Collections; import java.util.List; public class SortListExample4 { public static void main(String args[]) { List list = Arrays.asList(10,1,-20,40,5,-23,0); Collections.sort(list, Collections.reverseOrder()); System.out.println(list); } } 

Изход:

Как да сортирате списък в Java

Метод на Java Collections.sort().

Класът Collections има два метода за сортиране на списък:

метод sort().

Методът sort() сортира списъка във възходящ ред, според естествения ред на елементите му. Сигнатурата на метода е:

 public static <t extends comparable> void sort() (List list) </t>

Параметри

T: Това е тип параметър.

списък: Списъкът за сортиране.

Нека видим друг пример за метод Collections.sorts().

Шрея Гошал

Пример

 import java.util.*; public class SortListExample5 { public static void main(String[] args) { List sList = new ArrayList(); sList.add(&apos;m&apos;); sList.add(&apos;k&apos;); sList.add(&apos;a&apos;); sList.add(&apos;p&apos;); sList.add(&apos;d&apos;); Collections.sort(sList); //sorts array list for(String str: sList) System.out.print(&apos; &apos;+str); } } 

Изход:

Как да сортирате списък в Java