ArrayList ist die im Collection-Framework bereitgestellte Klasse. In Java ist das Sammlungsframework im Paket java.util definiert. ArrayList wird verwendet, um die Elemente dynamisch zu speichern. Es ist flexibler als ein Array, da es in ArrayList keine Größenbeschränkung gibt. ArrayList speichert die Daten ungeordnet. In einigen Fällen müssen wir die Daten in geordneter Weise neu anordnen.
Es gibt zwei Arten von ArrayList in Java. Eine davon ist die ArrayList der Wrapper-Klassenobjekte und die andere die ArrayList der benutzerdefinierten Objekte. Wir werden die Sortierung beider Arten von ArrayList sehen. Beginnen wir mit dem ersten.
- Sortieren einer ArrayList von Wrapper-Klassenobjekten.
- Aufsteigende Reihenfolge
- Absteigende Reihenfolge
- Sortieren einer ArrayList benutzerdefinierter Objekte.
- Vergleichbar
- Komparator
Typ 1: Sortieren einer ArrayList von Wrapper-Klassenobjekten
Eine ArrayList des Wrapper-Klassenobjekts ist nichts anderes als eine ArrayList von Objekten wie String, Integers usw. Eine ArrayList kann auf zwei Arten in aufsteigender und absteigender Reihenfolge sortiert werden. Die Sammlungsklasse bietet zwei Methoden zum Sortieren von ArrayList. sort() und reverseOrder() für aufsteigende bzw. absteigende Reihenfolge.
1(A)Aufsteigende Reihenfolge
Diese Methode sort() akzeptiert das Listenobjekt als Parameter und gibt eine in aufsteigender Reihenfolge sortierte ArrayList zurück. Die Syntax für die Methode sort() ist wie folgt.
Collections.sort(objectOfArrayList);>
Alle Elemente in der ArrayList müssen untereinander vergleichbar sein, andernfalls wird ein Fehler ausgelöst ClassCastException . Untereinander vergleichbar bedeutet hier, dass alle Elemente der Liste denselben Datentyp haben.
ArrayList list = new ArrayList(); list.add(132); list.add(321); list.add('India');> Im obigen Beispiel sehen wir, dass eine Liste drei Elemente enthält, von denen zwei Elemente vom Typ „Integer“ und eines vom Typ „String“ sind. Die beiden Elemente vom Typ „Integer“ sind miteinander vergleichbar, das Element vom Typ „String“ ist jedoch nicht mit den beiden anderen vergleichbar. In diesem Fall können wir eine ClassCastException erhalten. Daher muss die Liste denselben Elementtyp enthalten.
Betrachten wir das folgende Beispiel, um die Sortierung zu verstehen.
Java
Mathe-Zufalls-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);> >}> }> |
>
inurl:.git/head
>
Ausgabe:
Before Sorting : [India, Pakistan, Srilanka, USA, Australia, Japan] After Sorting : [Australia, India, Japan, Pakistan, Srilanka, USA]>
1(B) Absteigende Reihenfolge
Um eine ArrayList in absteigender Reihenfolge zu sortieren, verwenden wir umgekehrte Reihenfolge() -Methode als Argument einer sort()-Methode. Wir können die Methode reverseOrder() nicht direkt aufrufen. Diese Methode benötigt zwei Parameter: Einer ist ein Objekt von ArrayList und der zweite Parameter ist die Methode Collections.reversOrder(). Diese Methode gibt ArrayList in absteigender Reihenfolge zurück. Ähnlich wie bei der Methode sort() muss ArrayList untereinander vergleichbar sein, andernfalls wird ein Fehler ausgelöst ClassCastException .
Collections.sort(objectOfArrayList, Collections.reverseOrder());>
Hier sortiert diese Methode die Elemente zunächst in aufsteigender Reihenfolge und kehrt dann die Reihenfolge der sortierten Elemente um.
Java
// 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);> >}> }> |
>
Zeenat Aman Schauspieler
>
Ausgabe:
Before Sorting : [410, 250, 144, 967, 289, 315] After Sorting : [967, 410, 315, 289, 250, 144]>
2. Sortieren einer ArrayList benutzerdefinierter Objekte
Eine ArrayList benutzerdefinierter Objekte ist nichts anderes als eine ArrayList benutzerdefinierter Objekte. In Java gibt es zwei Schnittstellen, die zum Sortieren von Sammlungselementen verwendet werden können. Vergleichbar und Komparator.
2(A) Vergleichbar
Comparable bietet eine einzelne Sortierreihenfolge. Wenn wir Comparable verwenden, wirkt sich dies auf die ursprüngliche Klasse aus. Vergleichbare Schnittstelle bietet vergleichen mit() Methode zum Sortieren von Elementen. In Java wird ein Vergleich durch das Paket java.lang bereitgestellt. Wir können die ArrayList durch Aufrufen sortieren Collections.sort(List)-Methode .
Beispiel: Die Sortierung erfolgt nach Anzahl der vorrätigen Autos.
Java
dhl bedeutet was
// 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);> >}> >}> }> |
>
>
Ausgabe:
2013 creta 10 2020 MG 13 2018 Kia 20 2017 Audi 45 2015 BMW 50>
2(B) Komparator
Comparator bietet mehrere Sortiersequenzen. Der Komparator hat keinen Einfluss auf die ursprüngliche Klasse. Komparator bietet vergleichen() Methode zum Sortieren von Elementen. In Java wird ein Vergleich durch das Paket java.util bereitgestellt. Wir können die ArrayList sortieren, indem wir die Methode Collections.sort(List, Comparator) aufrufen. Nehmen wir ein Beispiel.
Java
// 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);> >}> >}> }> |
Datenbank
>
>
Ausgabe:
10 creta 2013 13 MG 2020 20 Kia 2018 45 Audi 2017 50 BMW 2015>