В Java, колекция е рамка, която предоставя интерфейси ( Набор, списък, опашка, и т.н.) и класове ( ArrayList, LinkedList, и т.н.), за да съхраните групата обекти. Тези класове съхраняват данни по неподреден начин. Понякога трябва да подредим данните по подреден начин, известен като сортиране . Сортирането може да се извърши по два начина или в възходящ или низходящ поръчка.
В този раздел ще научим как да сортирате ArrayList във възходящ ред и низходящ ред.
ArrayList
в Java , ArrayList е клас от рамка на колекции, която е дефинирана вjava.utilпакет. Той наследява класа AbstractList. Той динамично съхранява елементите. Предимството на ArrayList е, че няма ограничение за размера. Той е по-гъвкав от традиционния масив. Може да има дублирани елементи. Можем също да използваме всички методи на интерфейса List, тъй като той имплементира списък интерфейс.
Можем да сортираме ArrayList по два начина във възходящ и низходящ ред. Класът Collections предоставя два метода за сортиране на ArrayList в Java.
Метод Collections.sort().
ArrayList може да бъде сортиран с помощта на вид() метод на Клас колекции в Java . Той приема обект от ArrayList като параметър за сортиране и връща ArrayList, сортиран във възходящ ред според естествения ред на неговите елементи.
конвертиране на низ в json java
Синтаксис
public static <t extends comparable> void sort(List list) </t>
Помня: Всички елементи в ArrayList трябва да са взаимно сравними, в противен случай той хвърля ClassCastException. Тук взаимно сравними означава, че списъкът трябва да има един и същи тип елементи. Например, разгледайте фрагмента от кода:
//creating an instance of ArrayList that contains String type elements ArrayList list = new ArrayList(); list.add('Computer'); list.add(123); list.add('Hard Disk'); list.add('DRAM');
В горния пример виждаме, че списъкът има четири елемента, от които три елемента са от тип String и един е тип Integer. Трите елемента, които са в String, са взаимно сравними, но елементът, който е от тип Integer, не е сравним с останалите три. Следователно списъкът трябва да има един и същи тип елементи.
Метод Collections.reverseOrder().
Ако искаме да сортираме ArrayList в низходящ поръчка, Java колекции клас предоставя обратен ред() метод. Това ни позволява да сортираме ArrayList в обратно-лексикографски поръчка.
Синтаксис
метод на подниз java
public static Comparator reverseOrder()
Той връща компаратор, който налага обратното на естественото подреждане върху колекция от обекти, които имплементират интерфейса Comparable.
Не забравяйте, че ние не извикваме директно метода reverseOrder(). Използваме го заедно с Collection.sort() метод, както следва.
Collections.sort(objectOfArrayList, Collections.reverseOrder());
Следователно, сортирането на ArrayList в низходящ ред се извършва в две стъпки, първо ArrayList сортира данните във възходящ ред, след което сортираните данни се обръщат от обратен ред() метод.
Нека създадем програми, които сортират ArrayList във възходящ ред.
Сортиране на ArrayList във възходящ ред
В следващия пример създадохме ArrayList от тип String и добавихме някои елементи в него. След това извикахме метода sort() на класа Collections и предадохме обекта на класа ArrayList, т.е. списък, който сортира елементите във възходящ ред.
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('Volkswagen'); list.add('Toyota'); list.add('Porsche'); list.add('Ferrari'); list.add('Mercedes-Benz'); list.add('Audi'); list.add('Rolls-Royce'); list.add('BMW'); // printing the unsorted ArrayList System.out.println('Before Sorting: '+ list); // Sorting ArrayList in ascending Order Collections.sort(list); // printing the sorted ArrayList System.out.println('After Sorting: '+ list); } }
Изход:
Before Sorting: [Volkswagen, Toyota, Porsche, Ferrari, Mercedes-Benz, Audi, Rolls-Royce, BMW] After Sorting: [Audi, BMW, Ferrari, Mercedes-Benz, Porsche, Rolls-Royce, Toyota, Volkswagen]
Нека видим друг пример, който сортира ArrayList от тип Integer.
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('ArrayList Before Sorting:'); for(int marks: list) { System.out.println(marks); } //sorting ArrayList in ascending order Collections.sort(list); //printing ArrayList after sorting System.out.println('ArrayList After Sorting:'); for(int marks: list) { System.out.println(marks); } } }
Изход:
речник c#
ArrayList Before Sorting: 55 34 98 67 39 76 81 ArrayList After Sorting: 34 39 55 67 76 81 98
Сортирайте ArrayList в низходящ ред
В следващия пример създадохме ArrayList от тип String и добавихме някои елементи в него. След това извикахме метода reverseOrder() заедно с метода sort() на класа Collections и предадохме обекта на класа ArrayList, т.е. списък, който сортира елементите в низходящ ред.
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('Data Science'); list.add('Testing'); list.add('C#'); list.add('Basic Language'); list.add('UML'); list.add('Algorithms '); list.add('Computer Networks'); list.add('Python'); // printing the unsorted ArrayList System.out.println('Before Sorting: '+ list); // Sorting ArrayList in ascending Order // using Collection.sort() method Collections.sort(list, Collections.reverseOrder()); // Print the sorted ArrayList System.out.println('After Sorting: '+ list); } }
Изход:
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('ArrayList Before Sorting:'); 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('ArrayList After Sorting:'); for(int marks: list) { System.out.println(marks); } } }
Изход:
ArrayList Before Sorting: 566 230 123 110 689 12 95 ArrayList After Sorting: 689 566 230 123 110 95 12