Maison > Java > javaDidacticiel > Comment puis-je comparer efficacement deux listes en Java pour trouver des éléments à la fois communs et différents ?

Comment puis-je comparer efficacement deux listes en Java pour trouver des éléments à la fois communs et différents ?

DDD
Libérer: 2024-12-01 01:09:15
original
597 Les gens l'ont consulté

How Can I Efficiently Compare Two Lists in Java to Find Both Common and Different Elements?

Comparaison de deux listes en Java

En Java, la comparaison de deux listes peut être réalisée grâce à diverses méthodes et structures de données. Cet article explore plusieurs approches pour comparer des listes, en se concentrant sur la recherche d'éléments à la fois similaires et différents.

ArrayList et retentionAll Method

L'utilisation d'un ArrayList et de la méthode retentionAll vous permet de conserver uniquement les éléments contenus dans les deux listes.

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

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

        list1.retainAll(list2);
        System.out.println("Common elements: " + list1);
    }
}
Copier après la connexion

HashSet et RemoveAll Méthode

Si vous avez besoin de trouver non seulement des éléments communs mais également des éléments différents, l'utilisation d'un HashSet et de la méthode removeAll est une approche appropriée. Un HashSet n'autorise pas les doublons, il peut donc éliminer les valeurs répétées.

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

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

        Collection<String> common = new HashSet<>(list1);
        Collection<String> different = new HashSet<>();
        different.addAll(list1);
        different.addAll(list2);

        common.retainAll(list2);
        different.removeAll(common);

        System.out.printf("Common elements: %s%nDifferent elements: %s%n", common, different);
    }
}
Copier après la connexion

Approche personnalisée

Vous pouvez également créer une méthode personnalisée pour comparer les listes et renvoyer les éléments communs et différents. Cela offre plus de flexibilité et d'options de personnalisation.

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

        List<String> common = new ArrayList<>();
        List<String> different = new ArrayList<>();

        for (String element : list1) {
            if (list2.contains(element)) {
                common.add(element);
            } else {
                different.add(element);
            }
        }

        for (String element : list2) {
            if (!list1.contains(element)) {
                different.add(element);
            }
        }

        System.out.printf("Common elements: %s%nDifferent elements: %s%n", common, different);
    }
}
Copier après la connexion

En tirant parti de ces techniques, vous pouvez comparer efficacement deux listes en Java, en identifiant à la fois les éléments communs et différents

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