Comment trier une liste chaînée en Java

Triez votre liste de liens en Java.

Trier une liste liée en Java

Étape 1

Déclarez la liste liée en créant un nouvel objet LinkedList et en l'affectant à une variable LinkedList. LinkedList hérite de la classe List générique. Par conséquent, toute méthode acceptée par List sera également acceptée par l'objet LinkedList.

"" LinkedList l = new LinkedList (); ""

Étape 2

Ajoutez des objets du même type (tels que des entiers) à la liste. Ceux-ci peuvent être des objets de tout type, mais pour pouvoir trier la liste liée, ils doivent tous être du même type.

Étape 3

Utilisez la méthode List.addFirst pour insérer de nouveaux objets au début de la liste afin que les objets que vous ajoutez soient dans l'ordre inverse. Si vous souhaitez les ajouter à la fin de la liste, utilisez la méthode List.addLast.

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

Étape 4

Utilisez un itérateur pour parcourir la liste et imprimez-le avant et après pour voir ce que fait la méthode de tri.

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

Trier à l'aide des comparateurs par défaut et personnalisés

Étape 1

Triez la liste avec le comparateur par défaut. Un comparateur est un objet qui compare deux objets. L'objet comparateur par défaut utilise un opérateur plus petit que, de sorte que la liste sera triée par ordre croissant. Pour trier la liste, utilisez la méthode statique Collections.sort.

"" Collections.sort (liste); ""

Étape 2

Triez la liste avec un comparateur personnalisé en écrivant une classe qui implémente une interface de comparaison et lui transmet une instance en tant qu'argument de la sorte. La classe qui implémente le comparateur doit simplement implémenter la méthode simple "compare".

"" La classe publique GreaterThan implémente le comparateur else if (x == y) {return 0;} else {return 1;}}} ""

Étape 3

Utilisez l'appel à Collections.sort en transmettant une nouvelle instance de GreaterThan en tant que second argument. Étant donné que les objets les plus grands seront triés plus tôt dans la liste, la liste sera triée par ordre décroissant au lieu d'être croissant. Si vous souhaitez également commander une liste d'objets à partir d'une classe personnalisée que vous avez écrite, cette classe peut implémenter l'interface Comparable au lieu d'utiliser une classe de comparaison distincte.

"" Collections.sort (liste, nouveau GreaterThan ()); ""