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
Libérer: 2024-12-07 04:06:18
original
750 Les gens l'ont consulté

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);
    }
}
Copier après la connexion

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);
    }
}
Copier après la connexion

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!

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