Maison > Java > javaDidacticiel > le corps du texte

Comment supprimer efficacement les doublons d'une liste en Java ?

Patricia Arquette
Libérer: 2024-11-04 01:32:30
original
892 Les gens l'ont consulté

How to Efficiently Remove Duplicates From a List in Java?

Supprimer efficacement les doublons d'une liste

Lorsque vous travaillez avec des listes, il est souvent nécessaire de supprimer les éléments en double pour rationaliser le traitement des données. Cependant, l'extrait de code suivant peut rencontrer des problèmes :

List<Customer> listCustomer = new ArrayList<>();    
for (Customer customer: tmpListCustomer)
{
  if (!listCustomer.contains(customer)) 
  {
    listCustomer.add(customer);
  }
}
Copier après la connexion

Quelle est la limitation ?

Cette approche s'appuie sur la méthode contain() pour vérifier les doublons. Cependant, cela ne fonctionne correctement que si la classe Customer remplace les méthodes equals() et hashCode() pour comparer efficacement les objets. Si ces méthodes ne sont pas mises en œuvre ou sont mal mises en œuvre, les doublons peuvent ne pas être détectés, ce qui entraîne des inexactitudes.

Techniques de suppression efficaces

Pour supprimer efficacement les doublons, il existe deux méthodes à considérer :

  1. Préserver l'ordre :

Si le maintien de l'ordre existant des éléments est essentiel, utilisez un LinkedHashSet. Cet ensemble conserve l'ordre d'insertion, vous permettant de le reconvertir en liste tout en préservant la séquence.

List<Customer> depdupeCustomers =
    new ArrayList<>(new LinkedHashSet<>(customers));
Copier après la connexion
  1. Modifier la liste originale :

Si la modification de la liste d'origine est acceptable, utilisez un ensemble pour stocker des éléments uniques et mettez à jour la liste d'origine en conséquence.

Set<Customer> depdupeCustomers = new LinkedHashSet<>(customers);
customers.clear();
customers.addAll(dedupeCustomers);
Copier après la connexion

Les deux méthodes offrent des solutions efficaces pour supprimer les doublons d'une liste, garantissant l'intégrité des données et optimisant les performances. .

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal