Maison  >  Article  >  Java  >  Comment trier une liste en fonction de l’ordre d’une autre liste en Java ?

Comment trier une liste en fonction de l’ordre d’une autre liste en Java ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-01 09:53:30668parcourir

How to Sort a List Based on the Order of Another List in Java?

Tri des listes en fonction d'un ordre donné

En Java, il est possible de trier une liste en fonction de l'ordre d'une autre liste. Cela peut être utile dans divers scénarios, tels que le maintien de l'ordre des éléments lors de leur récupération à partir d'une base de données ou la réorganisation d'une liste d'éléments en fonction des préférences de l'utilisateur.

Pour ce faire, nous pouvons exploiter Collections.sort( de Java). ), qui prend un Comparator comme argument. Un Comparator définit les règles de classement des éléments de la liste.

Solution Java 8

En Java 8, nous pouvons utiliser Comparator.comparing() pour trier la liste basé sur la méthode indexOf() de la liste ordonnée. L'extrait de code suivant illustre cette approche :

<code class="java">Collections.sort(listToSort, Comparator.comparing(item -> listWithOrder.indexOf(item)));</code>

Solution Java 8 optimisée

Pour des performances améliorées, nous pouvons utiliser Comparator.comparingInt() à la place, comme indiqué dans le code suivant :

<code class="java">listToSort.sort(Comparator.comparingInt(listWithOrder::indexOf));</code>

En triant une liste en fonction de l'ordre d'une autre, nous pouvons garantir que les éléments de la liste triée conservent le même ordre relatif que les éléments de la liste ordonnée. Il s'agit d'une technique puissante qui peut être utilisée pour une variété d'applications en programmation Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn