Maison > Java > javaDidacticiel > Comment puis-je comparer efficacement deux listes en Java et trouver des éléments communs et uniques ?

Comment puis-je comparer efficacement deux listes en Java et trouver des éléments communs et uniques ?

DDD
Libérer: 2024-11-28 14:17:11
original
797 Les gens l'ont consulté

How Can I Efficiently Compare Two Lists in Java and Find Common and Unique Elements?

Comparaison de deux listes en Java

Vous souhaitez comparer deux ensembles de données pour déterminer le nombre d'éléments qu'ils partagent. En supposant qu'il ne s'agit pas d'objets Java List, envisagez l'approche suivante :

En utilisant ArrayList

En utilisant ArrayList, vous pouvez utiliser la méthode retentionAll. Cette méthode conserve uniquement les éléments de la première liste qui sont également présents dans la deuxième liste. Par exemple :

import java.util.Collection;
import java.util.ArrayList;
import java.util.Arrays;

public class ListComparison {
    public static void main(String[] args) {
        Collection<String> listOne = new ArrayList<>(Arrays.asList("milan", "dingo", "elpha", "hafil", "meat", "iga", "neeta.peeta"));
        Collection<String> listTwo = new ArrayList<>(Arrays.asList("hafil", "iga", "binga", "mike", "dingo"));

        listOne.retainAll(listTwo);
        System.out.println(listOne);
    }
}
Copier après la connexion

Ce code imprimera une liste des éléments communs entre listOne et listTwo.

Utilisation de HashSet

Si vous le souhaitez pour inclure les valeurs répétées (c'est-à-dire les éléments qui apparaissent plusieurs fois dans l'une ou l'autre liste), vous pouvez utiliser un HashSet au lieu d'ArrayList. HashSet n'autorise pas les doublons, donc après la comparaison, vous pouvez utiliser la méthode removeAll pour supprimer les éléments communs de l'ensemble combiné d'éléments dans les deux listes. Cela vous donnera une liste d'éléments uniques non communs :

import java.util.Collection;
import java.util.HashSet;
import java.util.Arrays;

public class ListComparison {
    public static void main(String[] args) {

        Collection<String> listOne = Arrays.asList("milan", "iga",
                "dingo", "iga",
                "elpha", "iga",
                "hafil", "iga",
                "meat", "iga",
                "neeta.peeta", "iga");

        Collection<String> listTwo = Arrays.asList("hafil",
                "iga",
                "binga",
                "mike",
                "dingo", "dingo", "dingo");

        Collection<String> similar = new HashSet<>(listOne);
        Collection<String> different = new HashSet<>();
        different.addAll(listOne);
        different.addAll(listTwo);

        similar.retainAll(listTwo);
        different.removeAll(similar);

        System.out.printf("One:%s%nTwo:%s%nSimilar:%s%nDifferent:%s%n", listOne, listTwo, similar, different);
    }
}
Copier après la connexion

Ce code modifié affichera les éléments similaires et différents entre les deux listes.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal