logo

Jak sortować ArrayList w Javie

na Jawie, Kolekcja to framework udostępniający interfejsy ( Zestaw, Lista, Kolejka, itp.) i klas ( ArrayList, LinkedList, itp.) do przechowywania grupy obiektów. Klasy te przechowują dane w sposób nieuporządkowany. Czasami musimy uporządkować dane w uporządkowany sposób, tzw sortowanie . Sortowanie można przeprowadzić na dwa sposoby albo w rosnąco Lub malejąco zamówienie.

W tej części się dowiemy jak posortować ArrayList rosnąco I Kolejność malejąca.

Lista tablic

W Jawa , Lista tablic to klasa frameworka Collections zdefiniowana w plikuJava.utilpakiet. Dziedziczy klasę AbstractList. Dynamicznie przechowuje elementy. Zaletą ArrayList jest to, że nie ma ograniczenia rozmiaru. Jest bardziej elastyczny niż tradycyjna tablica. Może zawierać zduplikowane elementy. Możemy także używać wszystkich metod interfejsu List, ponieważ implementuje on metodę Lista interfejs.

Listę ArrayList możemy sortować na dwa sposoby, rosnąco i malejąco. Klasa Collections udostępnia dwie metody sortowania listy ArrayList w Javie.

    sortować() Odwrotna kolejność()

Metoda Collections.sort().

Listę ArrayList można sortować za pomocą metody sortować() metoda Klasa kolekcji w Javie . Akceptuje obiekt ArrayList jako parametr do sortowania i zwraca ArrayList posortowaną w kolejności rosnącej, zgodnie z naturalnym porządkiem jej elementów.

wół kontra byk

Składnia

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

Pamiętać: Wszystkie elementy w ArrayList muszą być wzajemnie porównywalne, w przeciwnym razie zostaną wyrzucone Wyjątek ClassCast. W tym przypadku wzajemnie porównywalne oznacza, że ​​lista musi zawierać elementy tego samego typu. Rozważmy na przykład fragment kodu:

 //creating an instance of ArrayList that contains String type elements ArrayList list = new ArrayList(); list.add(&apos;Computer&apos;); list.add(123); list.add(&apos;Hard Disk&apos;); list.add(&apos;DRAM&apos;); 

W powyższym przykładzie widzimy, że lista składa się z czterech elementów, z czego trzy są typu String, a jeden jest typu Integer. Trzy elementy znajdujące się w String są wzajemnie porównywalne, ale element typu Integer nie jest porównywalny z pozostałymi trzema. Dlatego lista musi zawierać elementy tego samego typu.

Metoda Collections.reverseOrder().

Jeśli chcemy posortować ArrayList w malejąco zamówienie, Kolekcje Javy klasa zapewnia Odwrotna kolejność() metoda. Pozwala nam sortować ArrayList odwrotna leksykografia zamówienie.

Składnia

 public static Comparator reverseOrder() 

Zwraca komparator, który narzuca odwrotność naturalnego porządku na kolekcję obiektów implementujących interfejs Comparable.

Pamiętaj, że nie wywołujemy bezpośrednio metody ReverseOrder(). Używamy go razem z Kolekcja.sort() sposób w następujący sposób.

 Collections.sort(objectOfArrayList, Collections.reverseOrder()); 

Dlatego sortowanie ArrayList w kolejności malejącej odbywa się w dwóch etapach, najpierw ArrayList sortuje dane w kolejności rosnącej, a następnie posortowane dane są odwracane przez Odwrotna kolejność() metoda.

Stwórzmy programy sortujące ArrayList w kolejności rosnącej.

ciąg znaków Java cmp

Sortuj ArrayList w kolejności rosnącej

W poniższym przykładzie utworzyliśmy ArrayList typu String i dodaliśmy do niej kilka elementów. Następnie wywołaliśmy metodę sort() klasy Collections i przekazaliśmy obiekt klasy ArrayList, czyli listę sortującą elementy w kolejności rosnącej.

SortArrayListExample1.java

 import java.util.*; public class SortArrayListExample1 { public static void main(String args[]) { // creating object of ArrayList class ArrayList list = new ArrayList(); // adding elements to the ArrayList list.add(&apos;Volkswagen&apos;); list.add(&apos;Toyota&apos;); list.add(&apos;Porsche&apos;); list.add(&apos;Ferrari&apos;); list.add(&apos;Mercedes-Benz&apos;); list.add(&apos;Audi&apos;); list.add(&apos;Rolls-Royce&apos;); list.add(&apos;BMW&apos;); // printing the unsorted ArrayList System.out.println(&apos;Before Sorting: &apos;+ list); // Sorting ArrayList in ascending Order Collections.sort(list); // printing the sorted ArrayList System.out.println(&apos;After Sorting: &apos;+ list); } } 

Wyjście:

 Before Sorting: [Volkswagen, Toyota, Porsche, Ferrari, Mercedes-Benz, Audi, Rolls-Royce, BMW] After Sorting: [Audi, BMW, Ferrari, Mercedes-Benz, Porsche, Rolls-Royce, Toyota, Volkswagen] 

Zobaczmy inny przykład sortujący ArrayList typu Integer.

wyszukiwarka i przykłady

SortArrayListExample2.java

 import java.util.*; public class SortArrayListExample2 { public static void main(String args[]) { //creating an object of ArrayList class ArrayList list = new ArrayList(); list.add(55); list.add(34); list.add(98); list.add(67); list.add(39); list.add(76); list.add(81); //printing ArrayList before sorting System.out.println(&apos;ArrayList Before Sorting:&apos;); for(int marks: list) { System.out.println(marks); } //sorting ArrayList in ascending order Collections.sort(list); //printing ArrayList after sorting System.out.println(&apos;ArrayList After Sorting:&apos;); for(int marks: list) { System.out.println(marks); } } } 

Wyjście:

 ArrayList Before Sorting: 55 34 98 67 39 76 81 ArrayList After Sorting: 34 39 55 67 76 81 98 

Sortuj ArrayList w kolejności malejącej

W poniższym przykładzie utworzyliśmy ArrayList typu String i dodaliśmy do niej kilka elementów. Następnie wywołaliśmy metodę ReverseOrder() wraz z metodą sort() klasy Collections i przekazaliśmy obiekt klasy ArrayList, czyli listę sortującą elementy w kolejności malejącej.

SortArrayListExample3.java

 import java.util.*; public class SortArrayListExample3 { public static void main(String args[]) { // creating object of ArrayList class ArrayList list = new ArrayList(); // adding elements to the ArrayList list.add(&apos;Data Science&apos;); list.add(&apos;Testing&apos;); list.add(&apos;C#&apos;); list.add(&apos;Basic Language&apos;); list.add(&apos;UML&apos;); list.add(&apos;Algorithms &apos;); list.add(&apos;Computer Networks&apos;); list.add(&apos;Python&apos;); // printing the unsorted ArrayList System.out.println(&apos;Before Sorting: &apos;+ list); // Sorting ArrayList in ascending Order // using Collection.sort() method Collections.sort(list, Collections.reverseOrder()); // Print the sorted ArrayList System.out.println(&apos;After Sorting: &apos;+ list); } } 

Wyjście:

 Before Sorting: [Data Science, Testing, C#, Basic Language, UML, Algorithms, Computer Networks, Python] After Sorting: [UML, Testing, Python, Data Science, Computer Networks, C#, Basic Language, Algorithms] 

SortArrayListExample4.java

 import java.util.*; public class SortArrayListExample4 { public static void main(String args[]) { //creating an object of ArrayList class ArrayList list = new ArrayList(); list.add(566); list.add(230); list.add(123); list.add(110); list.add(689); list.add(12); list.add(95); //printing ArrayList before sorting System.out.println(&apos;ArrayList Before Sorting:&apos;); for(int marks: list) { System.out.println(marks); } //sorting ArrayList in descending order Collections.sort(list, Collections.reverseOrder()); //printing ArrayList after sorting System.out.println(&apos;ArrayList After Sorting:&apos;); for(int marks: list) { System.out.println(marks); } } } 

Wyjście:

 ArrayList Before Sorting: 566 230 123 110 689 12 95 ArrayList After Sorting: 689 566 230 123 110 95 12