Java Vector equals()-Methode
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 von
ListTyp wird ein Inhaltsvergleich durchgeführt
- Typ:
Rückgabewert
- Gibt zurück
booleanTyp:true: Wenn das angegebene Objekt ebenfalls einList, und beide Listen dieselbe Größe haben und alle entsprechenden Elementpaare gleich sindfalse: 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> 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
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> 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:
- Zuerst wird geprüft, ob das verglichene Objekt dieselbe Instanz ist (Referenzgleichheit)
- Prüfen, ob das Objekt vom Typ
Listtype - Vergleichen, ob die Größen der beiden Listen gleich sind
- Vergleichen Sie Element für Element, ob die Elemente an den entsprechenden Positionen gleich sind (unter Verwendung der
equals()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> 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.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> 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