Maison > Java > javaDidacticiel > Comparaison de deux ArrayList en Java

Comparaison de deux ArrayList en Java

DDD
Libérer: 2025-02-07 12:03:10
original
179 Les gens l'ont consulté

Comparing Two ArrayList In Java

Ce guide explore plusieurs méthodes Java pour comparer deux listes de table. Une comparaison réussie nécessite que les deux listes aient la même taille et contiennent des éléments identiques.

Méthodes pour comparer les listes de table dans Java

Plusieurs approches existent pour comparer les listes de table en Java:

  • equals() Méthode
  • removeAll() Méthode
  • retainAll() Méthode
  • contains() Méthode (dans une boucle)
  • contentEquals() Méthode (pour les listes de table de chaîne)
  • Comparaison directe des éléments (utilisant des itérateurs ou des flux)

Exemples illustratifs

illustrons avec des exemples:

Exemple 1: Utilisation de la méthode equals()

Il s'agit de l'approche la plus simple pour comparer les listes de table contenant les mêmes types d'objets.

import java.util.*;

public class ArrayListComparison {
    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
        ArrayList<Integer> list2 = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
        ArrayList<Integer> list3 = new ArrayList<>(Arrays.asList(4, 3, 2, 1));

        System.out.println("list1 equals list2: " + list1.equals(list2)); // true
        System.out.println("list1 equals list3: " + list1.equals(list3)); // false (order matters)
    }
}
Copier après la connexion

Exemple 2: Identification des différences en utilisant removeAll() et retainAll()

removeAll() supprime les éléments présents dans une autre liste, tandis que retainAll() ne conserve que des éléments communs. Ces méthodes aident à mettre en évidence les différences.

import java.util.*;

public class ArrayListDifference {
    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<>(Arrays.asList("apple", "banana", "orange"));
        ArrayList<String> list2 = new ArrayList<>(Arrays.asList("banana", "grape", "orange"));

        ArrayList<String> diff1 = new ArrayList<>(list1);
        diff1.removeAll(list2); // Elements in list1 but not in list2
        System.out.println("Elements only in list1: " + diff1); // [apple]

        ArrayList<String> common = new ArrayList<>(list1);
        common.retainAll(list2); // Common elements
        System.out.println("Common elements: " + common); // [banana, orange]

    }
}
Copier après la connexion

Exemple 3: Comparaison par élément à l'aide de flux

Pour des scénarios plus complexes ou une logique de comparaison personnalisée, les flux offrent une flexibilité.

import java.util.*;
import java.util.stream.Collectors;

public class ArrayListStreamComparison {
    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
        ArrayList<Integer> list2 = new ArrayList<>(Arrays.asList(1, 2, 3, 4));

        boolean isEqual = list1.stream().allMatch(list2::contains);
        System.out.println("Lists are equal (using streams): " + isEqual); //true

        //Find elements present in list1 but not in list2
        List<Integer> diff = list1.stream().filter(i -> !list2.contains(i)).collect(Collectors.toList());
        System.out.println("Difference: " + diff); // []

    }
}
Copier après la connexion

Algorithme pour comparer les listes de table

  1. Vérifier les tailles: Vérifiez si les deux listes de table ont la même taille. Sinon, ils sont inégaux.
  2. Itérer et comparer: itérer à travers les éléments d'une liste Array. Pour chaque élément, vérifiez s'il existe dans l'autre ArrayList en utilisant contains() ou une méthode similaire.
  3. Gire Order: Vérifiez si l'ordre des éléments est important. equals() est sensible à l'ordre. Si l'ordre n'est pas pertinent, triez les deux listes avant la comparaison.
  4. Retour Résultat: Si tous les éléments correspondent (et que l'ordre est considéré), retournez true; Sinon, retourne false.

Conclusion

Les méthodes multiples facilitent la comparaison de la liste Array en Java, chacune avec ses forces. La méthode equals() est efficace pour des comparaisons simples, tandis que removeAll() et retainAll() mettent en évidence les différences. Les flux offrent une flexibilité à des besoins de comparaison plus complexes. Choisissez l'approche le mieux adapté à vos exigences et complexité spécifiques.

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!

Étiquettes associées:
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 numéros
Impossible d'installer Java
Depuis 1970-01-01 08:00:00
0
0
0
Java peut-il être utilisé comme backend du Web ?
Depuis 1970-01-01 08:00:00
0
0
0
Installer JAVA
Depuis 1970-01-01 08:00:00
0
0
0
Aide : Données chiffrées JAVA Décryptage PHP
Depuis 1970-01-01 08:00:00
0
0
0
Est-ce en langage Java ?
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal