Suppression des doublons d'une liste
Lorsque vous travaillez avec des listes en Java, il peut être nécessaire de supprimer les éléments en double. Une tentative courante consiste à utiliser une boucle for pour vérifier si chaque élément est déjà présent dans la liste avant de l'ajouter. Cependant, cette approche peut s'avérer inefficace et sujette à des erreurs.
Problème :
Vous avez décrit avoir rencontré un problème lors de la tentative de suppression des doublons d'une liste d'objets client. Votre code utilise une boucle for pour vérifier si un client n'est pas déjà présent dans la liste avant de l'ajouter.
Solution :
La solution fournie offre une solution plus efficace et approche concise pour supprimer les doublons tout en préservant l’ordre d’origine de la liste. Il exploite la classe LinkedHashSet, qui gère une liste chaînée d'éléments en fonction de leur ordre d'insertion et supprime automatiquement les doublons.
Utilisation de LinkedHashSet :
L'extrait de code suivant montre comment pour utiliser un LinkedHashSet pour supprimer les doublons tout en maintenant l'ordre :
<code class="java">List<Customer> depdupeCustomers = new ArrayList<>(new LinkedHashSet<>(customers));</code>
Cette ligne crée un nouveau LinkedHashSet à partir de la liste des clients, ce qui donne un ensemble de clients uniques. L'ensemble est ensuite reconverti en liste ordonnée (ArrayList).
Modification de la liste originale :
Si vous souhaitez modifier la liste originale, vous pouvez utiliser le code suivant :
<code class="java">Set<Customer> depdupeCustomers = new LinkedHashSet<>(customers); customers.clear(); customers.addAll(dedupeCustomers);</code>
Ce code convertit la liste en LinkedHashSet, supprime les doublons, efface la liste d'origine, puis y ajoute les éléments uniques, supprimant ainsi efficacement les doublons de la liste d'origine.
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!