logo

Програма на Java для сортування ArrayList

ArrayList — це клас, наданий у рамках Collection. У Java структура колекції визначена в пакеті java.util. ArrayList використовується для динамічного зберігання елементів. Він більш гнучкий, ніж масив, тому що в ArrayList немає обмежень на розмір. ArrayList зберігає дані невпорядкованим чином. У деяких випадках нам потрібно впорядкувати дані.

У java є два типи ArrayList. Один — ArrayList об’єктів класу Wrapper, а інший — ArrayList об’єктів, визначених користувачем. Ми побачимо сортування обох типів ArrayList. Почнемо з першого.

  1. Сортування ArrayList об’єктів класу Wrapper.
    • В порядку зростання
    • У порядку зменшення
  2. Сортування ArrayList об’єктів, визначених користувачем.
    • Порівнянний
    • компаратор

Тип 1: Сортування ArrayList об’єктів класу Wrapper



Об’єкт класу ArrayList of Wrapper — це не що інше, як ArrayList таких об’єктів, як String, Integers тощо. ArrayList можна сортувати двома способами за зростанням і спаданням. Клас колекції надає два методи для сортування ArrayList. sort() і reverseOrder() для порядку зростання і спадання відповідно.

1(A) Порядок зростання

Цей метод sort() приймає об’єкт списку як параметр і повертає ArrayList, відсортований у порядку зростання. Синтаксис методу sort() наведено нижче.

Collections.sort(objectOfArrayList);>

Усі елементи в ArrayList мають бути взаємно порівнюваними, інакше він викидає ClassCastException . Тут взаємно порівнювані означає, що всі елементи списку мають однаковий тип даних.

ArrayList list = new ArrayList(); list.add(132); list.add(321); list.add('India');>

У наведеному вище прикладі ми бачимо, що список містить три елементи, з яких два мають цілий тип, а один — рядковий. Два елементи типу Integer взаємно порівнюються, але елемент типу String не порівнюється з двома іншими. У цьому випадку ми можемо отримати виняток ClassCastException. Отже, список повинен містити елементи одного типу.

Щоб зрозуміти сортування, розглянемо наступний приклад.

процес android acore постійно зупиняється

Java




// Java Program to Sort an ArrayList> // import java.util package> import> java.util.*;> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Define an objects of ArrayList class> >ArrayList list =>new> ArrayList();> >// Adding elements to the ArrayList> >list.add(>'India'>);> >list.add(>'Pakistan'>);> >list.add(>'Srilanka'>);> >list.add(>'USA'>);> >list.add(>'Australia'>);> >list.add(>'Japan'>);> >// 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 : [India, Pakistan, Srilanka, USA, Australia, Japan] After Sorting : [Australia, India, Japan, Pakistan, Srilanka, USA]>

1(B) У порядку спадання

Щоб відсортувати ArrayList у порядку спадання, ми використовуємо reverseOrder() як аргумент методу sort(). ми не можемо безпосередньо викликати метод reverseOrder(). Цей метод приймає два параметри, один – об’єкт ArrayList, а другий – метод Collections.reversOrder(). Цей метод повертає ArrayList у порядку спадання. Подібно до методу sort() ArrayList має бути взаємно порівнянним, інакше він викидає ClassCastException .

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

Тут цей метод спочатку сортує елементи в порядку зростання, а потім змінює порядок відсортованих елементів.

Java




css підкреслений текст
// Java Program to Sort an ArrayList> // Importing generic java files> import> java.util.*;> public> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Define an objects of ArrayList class> >ArrayList list =>new> ArrayList();> >// Adding elements to the ArrayList> >list.add(>410>);> >list.add(>250>);> >list.add(>144>);> >list.add(>967>);> >list.add(>289>);> >list.add(>315>);> >// Printing the unsorted ArrayList> >System.out.println(>'Before Sorting : '> + list);> >// Sorting ArrayList in descending Order> >Collections.sort(list, Collections.reverseOrder());> >// Printing the sorted ArrayList> >System.out.println(>'After Sorting : '> + list);> >}> }>

>

>

приклад java do while

Вихід:

Before Sorting : [410, 250, 144, 967, 289, 315] After Sorting : [967, 410, 315, 289, 250, 144]>

2. Сортування ArrayList об’єктів, визначених користувачем

ArrayList визначених користувачем об’єктів — це не що інше, як ArrayL.ist призначених для користувача об’єктів. У Java є два інтерфейси, які можна використовувати для сортування елементів колекції. Comparable і Comparator.

2(A) Порівняно

Comparable забезпечує єдину послідовність сортування. Якщо ми використовуємо Comparable, це вплине на вихідний клас. Надає порівняльний інтерфейс порівняти() метод сортування елементів. У java порівняння надається пакетом java.lang. Ми можемо сортувати ArrayList за допомогою виклику Метод Collections.sort(List). .

приклад: Сортування здійснюється за кількістю автомобілів на складі.

Java




// Java Program to Sort an ArrayList> // Importing generic java files> import> java.util.*;> // Implements comparable interface into custom class> class> Car>implements> Comparable {> >int> ModalNo;> >String name;> >int> stock;> >// Parameterized constructor of the class> >Car(>int> ModalNo, String name,>int> stock)> >{> >this>.ModalNo = ModalNo;> >this>.name = name;> >this>.stock = stock;> >}> >// Override the compareTo method> >public> int> compareTo(Car car)> >{> >if> (stock == car.stock)> >return> 0>;> >else> if> (stock>car.stock)> >return> 1>;> >else> >return> ->1>;> >}> }> // Main driver method> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Create the ArrayList object> >ArrayList c =>new> ArrayList();> >c.add(>new> Car(>2018>,>'Kia'>,>20>));> >c.add(>new> Car(>2020>,>'MG'>,>13>));> >c.add(>new> Car(>2013>,>'creta'>,>10>));> >c.add(>new> Car(>2015>,>'BMW'>,>50>));> >c.add(>new> Car(>2017>,>'Audi'>,>45>));> >// Call the sort function> >Collections.sort(c);> >// Iterate over ArrayList using for each loop> >for> (Car car : c) {> >// Print the sorted ArrayList> >System.out.println(car.ModalNo +>' '> + car.name> >+>' '> + car.stock);> >}> >}> }>

>

>

Вихід:

2013 creta 10 2020 MG 13 2018 Kia 20 2017 Audi 45 2015 BMW 50>

2(B) Компаратор

Компаратор забезпечує кілька послідовностей сортування. Компаратор не вплине на вихідний клас. Компаратор забезпечує порівняти() метод сортування елементів. У java порівняння надається пакетом java.util. Ми можемо відсортувати ArrayList, викликавши метод Collections.sort(List, Comparator). Візьмемо один приклад.

Java


pyspark



// Java Program to Sort an ArrayList> // Step 1: ImportingDB files> import> java.util.*;> // Class 1: Parent Class> class> Car {> >int> ModalNo;> >String name;> >int> stock;> >// Parameterized constructor> >Car(>int> ModalNo, String name,>int> stock)> >{> >this>.ModalNo = ModalNo;> >this>.name = name;> >this>.stock = stock;> >}> }> // Class 2: Child class> // creates the comparator for comparing stock value> class> StockComparator>implements> Comparator {> >// Function to compare> >public> int> compare(Car c1, Car c2)> >{> >if> (c1.stock == c2.stock)> >return> 0>;> >else> if> (c1.stock>c2.stock)> >return> 1>;> >else> >return> ->1>;> >}> }> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Create the ArrayList object> >ArrayList c =>new> ArrayList();> >c.add(>new> Car(>2018>,>'Kia'>,>20>));> >c.add(>new> Car(>2020>,>'MG'>,>13>));> >c.add(>new> Car(>2013>,>'creta'>,>10>));> >c.add(>new> Car(>2015>,>'BMW'>,>50>));> >c.add(>new> Car(>2017>,>'Audi'>,>45>));> >// Call the sort function> >Collections.sort(c,>new> StockComparator());> >// For each loop to iterate> >for> (Car car : c) {> > >// Print the sorted ArrayList> >System.out.println(car.stock +>' '> + car.name> >+>' '> + car.ModalNo);> >}> >}> }>

>

>

Вихід:

10 creta 2013 13 MG 2020 20 Kia 2018 45 Audi 2017 50 BMW 2015>