Maison >Java >javaDidacticiel >Comment trier une liste en fonction de l'ordre d'une autre liste en 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!