Heim >Java >javaLernprogramm >Vergleiche zwei ArrayList in Java
In diesem Handbuch werden mehrere Java -Methoden zum Vergleich von zwei Arraylisten untersucht. Erfolgreicher Vergleich erfordert, dass beide Listen die gleiche Größe haben und identische Elemente enthalten.
Methoden zum Vergleich von Arraylisten in Java
Es gibt mehrere Ansätze, um Arraylisten in Java zu vergleichen:
equals()
Methode removeAll()
Methode retainAll()
Methode contains()
Methode (innerhalb einer Schleife) contentEquals()
Methode (für String -Arraylisten) veranschaulichende Beispiele
veranschaulichen wir mit Beispielen:
Beispiel 1: Verwenden der equals()
-Methode
Dies ist der einfachste Ansatz zum Vergleich von Arraylisten mit denselben Objekttypen.
<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>
Beispiel 2: Identifizieren von Unterschieden mit removeAll()
und retainAll()
removeAll()
entfernt Elemente, die in einer anderen Liste vorhanden sind, während retainAll()
nur gemeinsame Elemente aufbewahrt. Diese Methoden helfen dabei, Unterschiede zu unterstreichen.
<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>
Beispiel 3: Elementwise-Vergleich mit Streams
Für komplexere Szenarien oder benutzerdefinierte Vergleichslogik bieten Streams Flexibilität.
<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>
Algorithmus zum Vergleich von Arraylisten
contains()
oder einer ähnlichen Methode vorliegt. equals()
ist empfindlich gegenüber Ordnung. Wenn die Reihenfolge irrelevant ist, sortieren Sie beide Listen vor dem Vergleich. true
; Ansonsten return false
. Schlussfolgerung
Mehrere Methoden ermöglichen den ArrayList -Vergleich in Java, jeweils mit seinen Stärken. Die Methode equals()
ist für einfache Vergleiche effizient, während die Unterschiede removeAll()
und retainAll()
hervorheben. Streams bieten Flexibilität für kompliziertere Vergleichsanforderungen. Wählen Sie den Ansatz aus, der für Ihre spezifischen Anforderungen und Komplexität am besten geeignet ist.
Das obige ist der detaillierte Inhalt vonVergleiche zwei ArrayList in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!