lär dig att använda Samlingar.Sortera () metod för att sortera arraylist av egna objekt i java med exempel.
som standard sorterar den här metoden osorterade List
I stigande ordning, dvs. enligt den naturliga beställningen av listobjekten. Vi kan använda Samlingar.reverseOrder () metod för omvänd sortering.
Sortera ArrayList av objekt – Samlingar.Sortera (lista )
- det sorterar de angivna
List
objekten i sin naturliga ordning., - alla element i
list
måste implementera det jämförbara gränssnittet. - alla element i listan måste vara ömsesidigt jämförbara och bör inte kasta
ClassCastException
. - denna sort garanteras vara stabil. Det betyder att lika delar inte kommer att omordnas som ett resultat av sorten.
- den angivna
list
måste vara modifierbar, men behöver inte ändras. - metoden returnerar inte något värde.,
exempel 1: Sortera arraylist av strängar
Java exempel för att sortera en lista med namn i lexikografiskt eller i ordlistan ordning.
exempel 2: Sortera arraylist för egna objekt efter fält med jämförbara
Vi kan behöva sortera listan över egna objekt som har sin egen sorteringslogik. Implementera i så fall gränssnittet Comparator
I den anpassade klassen.
till exempel har domänobjektetEmployee
en anpassad corasion-logik baserad på fältet employeeid
., Kassan för jämförelse logik i compareTo () metod.
Java-program för att sortera listan över anställdas objekt efterid
, I stigande och fallande order.
programutgång.
, E , E , E , E ], E , E , E , E ]
Sortera ArryList av objekt – Samlingar.Sortera (lista, komparator )
om domänobjektet inte implementerar Comparable
– gränssnittet kan vi använda anpassade Comparator
– implementeringar. Använd lambda-uttryck för att förkorta syntaxen ännu mer.,
exempel 1: Skapa anpassad komparator
det här är allmän syntax för att skapa en komparator i Java.
om i Java 8, använd lambda-uttryck för att göra syntaxen mer läsbar.
exempel 2: Sortera lista över objekt efter fält med komparator
programutmatning.
, E , E , E , E ], E , E , E , E ]
Glad inlärning !!
var det här inlägget användbart?