Java Vector equals()-Methode

Java Vector Java Vector

equals()Die Methode ist in JavaVectoreine wichtige Methode, die von der Klasse bereitgestellt wird und dazu dient, zweiVectorObjekte auf Gleichheit zu vergleichen. Diese Methode erbt vonAbstractListKlasse und implementiert dieListdes Interfaceequals()Methodendefinition.

Syntaxformat

public boolean equals(Object o)

Methodenparameter

  • o: Mit dem aktuellen zu vergleichenVectorDas zu vergleichende Objekt
    • Typ:Object
    • Kann ein beliebiges Java-Objekt sein, aber nur, wenn es vonListTyp wird ein Inhaltsvergleich durchgeführt

Rückgabewert

  • Gibt zurückbooleanTyp:
    • true: Wenn das angegebene Objekt ebenfalls einList, und beide Listen dieselbe Größe haben und alle entsprechenden Elementpaare gleich sind
    • false: Alle anderen Fälle

Methodenmerkmale

1. Inhaltsvergleich statt Referenzvergleich

equals()Die Methode vergleichtVectorInhalt statt Referenzadressen. Selbst wenn zweiVectorunterschiedliche Objektinstanzen sind, solange sie dieselben Elemente in derselben Reihenfolge enthalten,equals()gibt zurücktrue。

Beispiel

Vector<String> v1 = new Vector<>(Arrays.asList("A", "B", "C"));
Vector<String> v2 = new Vector<>(Arrays.asList("A", "B", "C"));

System.out.println(v1.equals(v2)); // Gibt true aus

2. Kompatibel mit dem List-Interface

DaVectorimplementsListSchnittstelle,equals()Methode kann mit jeder beliebigenListImplementierung verglichen werden, einschließlichArrayList、LinkedListusw.

Beispiel

Vector<String> vector = new Vector<>(Arrays.asList(1, 2, 3));
ArrayList<Integer> arrayList = new ArrayList<>(Arrays.asList(1, 2, 3));

System.out.println(vector.equals(arrayList)); // Gibt true aus

3. Empfindlich gegenüber der Elementreihenfolge

equals()Die Methode ist empfindlich gegenüber der Elementreihenfolge. Selbst wenn dieselben Elemente verwendet werden, aber in einer anderen Reihenfolge, gibt sie zurückfalse。

Beispiel

Vector<String> v1 = new Vector<>(Arrays.asList("A", "B", "C"));
Vector<String> v2 = new Vector<>(Arrays.asList("C", "B", "A"));

System.out.println(v1.equals(v2)); // Gibt aus

Implementierungsprinzip

Vectorvonequals()Die Methode stammt eigentlich vonAbstractListund ihre Kernimplementierungslogik ist wie folgt:

  1. Zuerst wird geprüft, ob das verglichene Objekt dieselbe Instanz ist (Referenzgleichheit)
  2. Prüfen, ob das Objekt vom TypListtype
  3. Vergleichen, ob die Größen der beiden Listen gleich sind
  4. Vergleichen Sie Element für Element, ob die Elemente an den entsprechenden Positionen gleich sind (unter Verwendung derequals()Methode des Elements)

Hinweise

1. Die equals()-Methode von Elementobjekten

Vectorvonequals()Die Methode stützt sich auf dieequals()Methodenimplementierung ihrer Elemente. Wenn benutzerdefinierte Objekte gespeichert werden, müssen Sie sicherstellen, dass dieequals()Methode korrekt überschrieben ist.

2. Umgang mit null-Werten

VectorKann enthaltennullElementen,equals()die Methode kann korrekt umgehen mitnulldem Vergleich von Werten.

Beispiel

Vector<String> v1 = new Vector<>(Arrays.asList(null, "B"));
Vector<String> v2 = new Vector<>(Arrays.asList(null, "B"));

System.out.println(v1.equals(v2)); // Gibt true aus

3. Leistungsaspekte

Für großeVector,equals()Die Methode erfordert einen Vergleich in linearer Zeit (O(n)-Zeit), was in leistungskritischen Fällen beachtet werden muss.


Beispielcode

Beispiel

import java.util.Vector;
import java.util.Arrays;

public class VectorEqualsExample {
    public static void main(String[] args) {
        // Drei Vektoren erstellen
        Vector<String> vector1 = new Vector<>(Arrays.asList("Java", "Python", "C++"));
        Vector<String> vector2 = new Vector<>(Arrays.asList("Java", "Python", "C++"));
        Vector<String> vector3 = new Vector<>(Arrays.asList("Python", "Java", "C++"));
       
        // vector1 und vector2 vergleichen
        System.out.println("vector1 gleich vector2: " + vector1.equals(vector2)); // true
       
        // Vergleiche vector1 und vector3
        System.out.println("vector1 gleich vector3: " + vector1.equals(vector3)); // false
       
        // Mit ArrayList vergleichen
        java.util.ArrayList<String> arrayList =
            new java.util.ArrayList<>(Arrays.asList("Java", "Python", "C++"));
        System.out.println("vector1 gleich arrayList: " + vector1.equals(arrayList)); // true
    }
}

Vergleich mit anderen Methoden

equals() vs. ==

  • equals(): Vergleicht Inhalt
  • ==: Vergleicht Referenzadressen

Beispiel

Vector<String> v1 = new Vector<>();
Vector<String> v2 = new Vector<>();
Vector<String> v3 = v1;

System.out.println(v1.equals(v2)); // true
System.out.println(v1 == v2);      // false
System.out.println(v1 == v3);      // true

equals() vs. containsAll()

  • equals(): Erfordert exakt dieselbe Reihenfolge und Anzahl der Elemente.
  • containsAll(): Prüft nur, ob alle Elemente enthalten sind, unabhängig von Reihenfolge und Anzahl.

Zusammenfassung

Vectorvonequals()Die Methode bietet eine Vergleichsfunktionalität auf Inhaltsebene und ist die Standardmethode, um festzustellen, ob zweiVectorinhaltlich gleich sind. Das Verständnis ihrer Funktionsweise und Eigenschaften ist wichtig für die korrekte Verwendung vonVectorSammlungen. In der tatsächlichen Programmierung sollten Sie die geeignete Vergleichsmethode basierend auf den spezifischen Anforderungen wählen und auf dieequals()Methodenimplementierung benutzerdefinierter Objekte.

Java Vector Java Vector

Andere Erweiterungen