Maison >Java >javaDidacticiel >Comment puis-je rechercher efficacement des éléments communs et distincts entre deux listes en Java ?

Comment puis-je rechercher efficacement des éléments communs et distincts entre deux listes en Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-07 04:06:18749parcourir

How Can I Efficiently Find Common and Distinct Elements Between Two Lists in Java?

Recherche d'éléments communs dans deux listes

Dans ce scénario de programmation, nous visons à déterminer le nombre d'éléments communs entre deux listes, ainsi qu'à identifier à la fois les éléments similaires et distincts. valeurs.

Pour y parvenir, on peut utiliser le framework de collection de Java et plus particulièrement les classes ArrayList ou HashSet. La méthode containAll dans ArrayList conserve uniquement les éléments partagés par les deux listes, fournissant un décompte des éléments communs (trois dans ce cas).

Par exemple :

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

public class CompareLists {
    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<>(Arrays.asList("milan", "dingo", "iga", "elpha", "hafil", "meat", "iga", "milan", "elpha", "meat", "iga"));
        ArrayList<String> list2 = new ArrayList<>(Arrays.asList("hafil", "iga", "binga", "mike", "dingo", "dingo", "dingo"));

        list1.retainAll(list2);
        System.out.println(list1);
    }
}

Alternativement, l'utilisation de HashSet pour la deuxième liste permet une comparaison plus efficace :

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

public class CompareLists {
    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<>(Arrays.asList("milan", "dingo", "iga", "elpha", "hafil", "meat", "iga", "milan", "elpha", "meat", "iga"));
        HashSet<String> list2 = new HashSet<>(Arrays.asList("hafil", "iga", "binga", "mike", "dingo", "dingo", "dingo"));

        Set<String> common = new HashSet<>(list1);
        common.retainAll(list2);

        Set<String> unique = new HashSet<>(list1);
        unique.addAll(list2);
        unique.removeAll(common);

        System.out.println("Common: " + common);
        System.out.println("Distinct: " + unique);
    }
}

Cette version identifie à la fois les valeurs communes et distinctes, en gérant les valeurs répétées efficacement.

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