Contenu
- Les instructions
- Trier une liste liée en Java
- Trier à l'aide des comparateurs par défaut et personnalisés
- Comment
- Avis
Comment organiser une liste chaînée en Java. Une liste fermée est l’un des principaux types de structures de données du monde de la programmation. C'est une organisation de nœuds qui contient des données et des références pointant vers le nœud suivant. Pour trier une liste chaînée en Java, il existe une classe de liste qui fonctionne avec le cadre Collections, qui implémente des algorithmes en tant qu'ordre.
Les instructions
Organiser la liste liée en Java (image d'interrogation par danimages de Fotolia.com)-
Déclarez la liste liée en créant un nouvel objet LinkedList et en affectant une variable LinkedList. Une liste LinkedList vient de la classe List générique. Par conséquent, toute méthode qui accepte une liste sera également acceptée par l'objet LinkedList. "" LinkedList l = new LinkedList (); ""
-
Ajoutez des objets du même type (tels que des entiers) à la liste. Ceux-ci peuvent être des objets de tout type, mais pour trier la liste liée, ils doivent tous être du même type.
-
Utilisez la méthode List.addFirst pour insérer de nouveaux objets en haut de la liste, de sorte que tous 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); "
-
Utilisez un itérateur pour parcourir la liste et l'imprimer avant et après avoir vu le résultat de la méthode de tri. "" pour (Iterator i = list.iterator (); i.hasNext ();) {System.out.println (i.next ());} "
Trier une liste liée en Java
-
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 l'opérateur le plus petit. La liste est donc triée par ordre croissant. Pour trier la liste, utilisez la méthode statique Collections.sort. "" Collections.sort (liste); ""
-
y) {return -1; "> Commandez la liste avec un comparateur personnalisé en écrivant une classe qui implémente une interface de comparaison et en la passant à une instance en tant qu’argument de classement. La classe implémentant le comparateur n’a qu’à implémenter le simple "La classe publique GreaterThan implémente le comparateur else if (x == y) {return 0;} else {return 1;}}}"
-
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 se trouveront devant les autres, la liste sera triée par ordre décroissant au lieu de l'ordre croissant. Si vous triez une liste d'objets d'une classe personnalisée que vous avez vous-même saisie, cette classe peut également implémenter l'interface Comparable au lieu d'utiliser la classe distincte Comparator. "" Collections.sort (liste, nouveau GreaterThan ()); ""
Trier à l'aide des comparateurs par défaut et personnalisés
Comment
- Il est problématique d'utiliser un entier pour effectuer une itération dans le circuit et la méthode List.size (). Itérer une liste fermée est une opération de calcul coûteuse. Lorsque vous utilisez un opérateur d'index (comme l [2]) comme dans n'importe quelle commande, Java doit parcourir la liste jusqu'à ce qu'il atteigne l'index 2. Pour les petites listes, c'est un problème, cependant, avec quelque chose de gros, utiliser l'opérateur d'index pour itérer se transforme en quelque chose qui nécessite beaucoup de ressources.
- Quelle que soit la manière dont l'objet List est implémenté, LinkedList implémente la même interface.
- La méthode de comparaison doit retourner à -1 si arg0 est commandé avant arg1, à 0 s'il est ordonné de manière égale et à 1 si arg1 est commandé avant arg0.
Avis
- L'objet itérateur garantit que chaque nœud de la liste ne visite qu'une seule fois. Ceci est important à retenir, car nous rendre visite sans nécessité pourrait abuser des structures de données au point de provoquer des dysfonctionnements du programme.