Cum să sortați o listă legată în Java

Sortați-vă lista legată în Java.

Sortați o listă legată în Java

Pasul 1

Declarați lista legată creând un nou obiect LinkedList și atribuiți-o unei variabile LinkedList. LinkedList moștenește din clasa generică a listei, astfel încât orice metodă acceptată de listă va fi acceptată și de obiectul LinkedList.

"" LinkedList l = noul LinkedList (); ""

Pasul 2

Adăugați în listă obiecte de același tip (cum ar fi numere întregi). Acestea pot fi obiecte de orice fel, dar pentru a putea sorta lista legată, toate trebuie să fie de același tip.

Pasul 3

Utilizați metoda List.addFirst pentru a insera obiecte noi la începutul listei, astfel încât obiectele pe care le adăugați să fie în ordine inversă. Dacă doriți să le adăugați la sfârșitul listei, utilizați metoda List.addLast.

"list.addFirst (1); list.addFirst (3); list.addFirst (2);"

Pasul 4

Utilizați un iterator pentru a repeta lista și a le tipări înainte și după pentru a vedea ce face metoda de sortare.

"" pentru (Iterator i = list.iterator (); i.hasNext ();) {System.out.println (i.next ());} "

Sortați utilizând comparatorii impliciți și personalizați

Pasul 1

Sortați lista cu comparatorul implicit. Un comparator este un obiect care compară două obiecte. Obiectul implicit de comparator utilizează operatorul mai mic decât, astfel încât lista va fi sortată în ordine ascendentă. Pentru a sorta lista, utilizați metoda statică Collections.sort.

"" Collections.sort (listă); ""

Pasul 2

Sortați lista cu un comparator personalizat scriind o clasă care implementează o interfață de comparare și o transmite o instanță ca argument la sortare. Clasa care implementează comparatorul trebuie pur și simplu să implementeze metoda simplă "compara".

"" public class GreaterThan implementează Comparator altfel dacă (x == y) {return 0;} altceva {return 1;}}} ""

Pasul 3

Utilizați apelul către Collections.sort prin trecerea unei noi instanțe a lui GreaterThan ca al doilea argument. Deoarece obiectele care sunt mai mari vor fi sortate mai devreme în listă, lista va fi sortată în ordine descrescătoare în loc de ascensiune. Alternativ, dacă doriți să comandați o listă de obiecte dintr-o clasă personalizată pe care ați scris-o singură, acea clasă poate implementa interfața comparabilă în loc să utilizeze o clasă comparator separată.

"" Collections.sort (list, new GreaterThan ()); ""