Maison >Java >javaDidacticiel >Comparaison de deux ArrayList en 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) 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.
<code class="language-java">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) } }</integer></integer></integer></code>
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.
<code class="language-java">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] } }</string></string></string></string></code>
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é.
<code class="language-java">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); // [] } }</integer></integer></integer></code>
Algorithme pour comparer les listes de table
contains()
ou une méthode similaire. equals()
est sensible à l'ordre. Si l'ordre n'est pas pertinent, triez les deux listes avant la comparaison. 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!