Come ordinare un elenco collegato in Java
Ordina un elenco collegato in Java
Passaggio 1
Dichiarare l'elenco collegato creando un nuovo oggetto LinkedList e assegnandolo a una variabile LinkedList. LinkedList eredita dalla classe List generica, quindi qualsiasi metodo accettato da List verrà accettato anche dall'oggetto LinkedList.
"" LinkedList l = new LinkedList (); ""
Passaggio 2
Aggiungi oggetti dello stesso tipo (come i numeri interi) alla lista. Questi possono essere oggetti di qualsiasi tipo, ma per essere in grado di ordinare l'elenco collegato, devono essere tutti dello stesso tipo.
Passaggio 3
Usa il metodo List.addFirst per inserire nuovi oggetti all'inizio dell'elenco, quindi gli oggetti che aggiungi saranno in ordine inverso. Se si desidera aggiungerli alla fine dell'elenco, utilizzare il metodo List.addLast.
"" list.addFirst (1); list.addFirst (3); list.addFirst (2); ""
Passaggio 4
Utilizzare un iteratore per scorrere l'elenco e stamparlo prima e dopo per vedere cosa sta facendo il metodo di ordinamento.
"" per (Iterator i = list.iterator (); i.hasNext ();) {System.out.println (i.next ());} ""
Ordina usando i comparatori predefiniti e personalizzati
Passaggio 1
Ordina la lista con il comparatore predefinito. Un comparatore è un oggetto che confronta due oggetti. L'oggetto comparatore di default usa l'operatore più piccolo di così, la lista sarà ordinata in ordine crescente. Per ordinare l'elenco, utilizzare il metodo statico Collections.sort.
"" Collections.sort (elenco); ""
Passaggio 2
Ordina l'elenco con un comparatore personalizzato scrivendo una classe che implementa un'interfaccia di confronto e passa un'istanza come argomento all'ordinamento. La classe che implementa il comparatore deve semplicemente implementare il semplice metodo "confronta".
"" public class GreaterThan implementa Comparator else if (x == y) {return 0;} else {return 1;}}} ""
Passaggio 3
Usa la chiamata a Collections.sort passando una nuova istanza di GreaterThan come secondo argomento. Poiché gli oggetti più grandi verranno ordinati in precedenza nell'elenco, l'elenco verrà ordinato in ordine decrescente anziché in ordine crescente. In alternativa, se stai ordinando una lista di oggetti da una classe personalizzata che hai scritto tu stesso, quella classe può implementare l'interfaccia Comparable invece di usare una classe Comparator separata.
"" Collections.sort (elenco, new GreaterThan ()); ""