У Java, Колекція це структура, яка надає інтерфейси ( Набір, список, черга, тощо) і класи ( ArrayList, LinkedList, тощо) для зберігання групи об’єктів. Ці класи зберігають дані невпорядкованим чином. Іноді нам потрібно впорядкувати дані в порядку, який називається сортування . Сортування можна виконати двома способами або в висхідний або спадання порядок.
У цьому розділі ми дізнаємося як сортувати ArrayList за зростанням і у порядку зменшення.
ArrayList
в Java , ArrayList це клас структури колекцій, який визначено вjava.utilпакет. Він успадковує клас AbstractList. Він динамічно зберігає елементи. Перевагою ArrayList є відсутність обмежень на розмір. Він більш гнучкий, ніж традиційний масив. Він може містити повторювані елементи. Ми також можемо використовувати всі методи інтерфейсу List, оскільки він реалізує Список інтерфейс.
Ми можемо сортувати ArrayList двома способами за зростанням і спаданням. Клас Collections надає два методи для сортування ArrayList у Java.
Метод Collections.sort().
ArrayList можна сортувати за допомогою sort() метод Клас колекцій в Java . Він приймає об’єкт ArrayList як параметр для сортування та повертає ArrayList, відсортований у порядку зростання відповідно до природного порядку його елементів.
j e s t
Синтаксис
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 клас забезпечує reverseOrder() метод. Це дозволяє нам сортувати ArrayList зворотно-лексикографічний порядок.
Синтаксис
java math pow
public static Comparator reverseOrder()
Він повертає компаратор, який накладає зворотний природний порядок на колекцію об’єктів, які реалізують інтерфейс Comparable.
Пам’ятайте, що ми безпосередньо не викликаємо метод reverseOrder(). Ми використовуємо його разом із Collection.sort() метод, наступним чином.
Collections.sort(objectOfArrayList, Collections.reverseOrder());
Таким чином, сортування ArrayList у порядку спадання виконується у два етапи: спочатку ArrayList сортує дані в порядку зростання, після цього відсортовані дані змінюються на зворотний reverseOrder() метод.
Давайте створимо програми, які сортують 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); } } }
Вихід:
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
вирівняти зображення css
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