Método Java Vector equals()

Java Vector Java Vector

equals()El método es en JavaVectorun método importante proporcionado por la clase, utilizado para comparar dosVectorobjetos son iguales. Este método hereda deAbstractListla clase, e implementaListen la interfazequals()la definición del método.

Formato de sintaxis

public boolean equals(Object o)

Parámetros del método

  • o: con el actualVectorobjeto a comparar
    • Tipo:Object
    • Puede ser cualquier objeto Java, pero solo si esListde tipo, se realizará la comparación de contenido.

Valor de retorno

  • DevuelvebooleanTipo:
    • true: si el objeto especificado también es unList, y ambas listas tienen el mismo tamaño, y todos los pares de elementos correspondientes son iguales
    • false: en todos los demás casos

Características del método

1. Comparación de contenido en lugar de comparación de referencias

equals()El método comparaVectorel contenido en lugar de la dirección de referencia. Incluso si dosVectorson instancias de objetos diferentes, siempre que contengan los mismos elementos y en el mismo orden,equals()devolverátrue。

Ejemplo

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)); // imprime true

2. Compatible con la interfaz List

Dado queVectorimplementaListla interfaz,equals()el método puede compararse con cualquierListimplementación, incluyendoArrayList、LinkedListetc.

Ejemplo

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)); // imprime true

3. Sensible al orden de los elementos

equals()El método es sensible al orden de los elementos; incluso si contienen los mismos elementos pero en diferente orden, devolveráfalse。

Ejemplo

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)); // imprime false

Principio de implementación

Vectordeequals()El método en realidad hereda deAbstractList, su lógica de implementación central es la siguiente:

  1. Primero comprueba si el objeto comparado es la misma instancia (igualdad de referencias)
  2. Comprueba si el objeto esListtipo
  3. Compara si el tamaño de las dos listas es el mismo
  4. Compara uno a uno si los elementos en las posiciones correspondientes son iguales (usando el métodoequals()de los elementos)

Notas

1. El método equals() de los objetos de los elementos

Vectordeequals()El método depende del métodoequals()de los elementos. Si se almacenan objetos personalizados, hay que asegurarse de que el métodoequals()se haya sobrescrito correctamente.

2. Manejo de valores null

VectorPuede contenernullelementos,equals()el método puede manejar correctamentenullla comparación de valores.

Ejemplo

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

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

3. Consideraciones de rendimiento

Para grandesVector,equals()el método necesita realizar una comparación en tiempo lineal (complejidad temporal O(n)), debe tenerse en cuenta en escenarios sensibles al rendimiento.


Código de ejemplo

Ejemplo

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

public class VectorEqualsExample {
    public static void main(String[] args) {
        // Crear tres objetos Vector
        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++"));
       
        // Comparar vector1 y vector2
        System.out.println("vector1 equals vector2: " + vector1.equals(vector2)); // true
       
        // Comparar vector1 y vector3
        System.out.println("vector1 equals vector3: " + vector1.equals(vector3)); // false
       
        // Comparar con ArrayList
        java.util.ArrayList<String> arrayList =
            new java.util.ArrayList<>(Arrays.asList("Java", "Python", "C++"));
        System.out.println("vector1 equals arrayList: " + vector1.equals(arrayList)); // true
    }
}

Comparación con otros métodos

equals() vs ==

  • equals(): comparar contenido
  • ==: comparar direcciones de referencia

Ejemplo

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(): requiere que el orden y la cantidad de elementos sean exactamente iguales
  • containsAll(): solo comprueba si contiene todos los elementos, sin considerar el orden ni la cantidad

Resumen

Vectordeequals()El método proporciona una función de comparación a nivel de contenido, y es el método estándar para determinar si dosVectorson iguales en contenido. Comprender su principio de funcionamiento y características es muy importante para utilizar correctamenteVectorlas colecciones. En la programación real, se debe elegir el método de comparación adecuado según las necesidades específicas, y prestar atención a la implementación del métodoequals()de los objetos personalizados.

Java Vector Java Vector

Otras extensiones