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); } }
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 :
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));
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);
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!