Maison >Java >javaDidacticiel >Comment supprimer les doublons d'une liste tout en préservant l'ordre ?

Comment supprimer les doublons d'une liste tout en préservant l'ordre ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-04 07:17:31767parcourir

How to Remove Duplicates from a List While Preserving Order?

Comment supprimer efficacement les doublons d'une liste

Vous rencontrez un scénario dans lequel vous devez supprimer les éléments en double d'une liste. Cependant, votre approche actuelle, comme vous le décrivez dans l'extrait de code, ne donne pas les résultats souhaités.

Une méthode efficace pour supprimer les doublons tout en conservant l'ordre d'origine consiste à utiliser un LinkedHashSet. Cette structure de données basée sur un ensemble supprime automatiquement les éléments en double tout en préservant l'ordre d'insertion.

Pour y parvenir, vous pouvez convertir la liste existante en LinkedHashSet en utilisant le code suivant :

<code class="java">List<Customer> dedupeCustomers = new ArrayList<>(new LinkedHashSet<>(customers));</code>

Alternativement , si vous préférez modifier la liste d'origine, vous pouvez opter pour cette approche :

<code class="java">Set<Customer> dedupeCustomers = new LinkedHashSet<>(customers);
customers.clear();
customers.addAll(dedupeCustomers);</code>

Cette méthode crée d'abord un nouveau LinkedHashSet contenant les éléments uniques de la liste d'origine. La liste d'origine est ensuite effacée et remplacée par les éléments de l'ensemble dédupliqué, supprimant ainsi efficacement tous les doublons.

En mettant en œuvre l'une ou l'autre de ces solutions, vous pouvez supprimer efficacement les doublons de votre liste, en garantissant que chaque élément n'apparaît qu'une seule fois tout en préservant la commande originale si vous le souhaitez.

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