Diferencia entre ArrayList y Vector en Java
Contenido
ArrayList y Vector son las clases bajo la jerarquía de Framework de colección. ArrayList y Vector, ambos se usan para crear una matriz dinámica de objetos donde la matriz puede crecer en tamaño cuando sea necesario. Hay dos diferencias básicas que distinguen a ArrayList y Vector es que Vector pertenece a las clases Legacy que luego se rediseñaron para admitir las clases de colección, mientras que ArrayList es una clase de colección estándar. Otra diferencia importante es que ArrayList no está sincronizado por otro lado; El vector está sincronizado.
Estudiemos algunas otras diferencias con la ayuda del Cuadro comparativo que se muestra a continuación.
- Cuadro comparativo
- Definición
- Diferencias clave
- Similitudes
- Conclusión
Cuadro comparativo
Bases para la comparación | Lista de arreglo | Vector |
---|---|---|
BASIC | La clase ArrayList no está sincronizada. | La clase de vector está sincronizada. |
Clase heredada | ArrayList es una clase de colección estándar. | Vector es una clase heredada, rediseñada para admitir la clase de colección. |
Declaración de clase | clase ArrayList | Vector de clase |
Reasignación | Cuando no se especifica, ArrayList se incrementa a la mitad de su tamaño. | Cuando no se especifica, un vector se incrementa para duplicar su tamaño. |
Actuación | Como ArrayList no está sincronizado, funciona más rápido que Vector. | Como Vector está sincronizado, funciona más lento que ArrayList. |
Enumeración / Iterador | ArrayList usa la interfaz Iterator para atravesar los objetos almacenados en ArrayList. | Vector utiliza Enumeration así como la interfaz Iterator para atravesar los objetos almacenados en Vectores. |
Definición de ArrayList
ArrayList pertenece a la lista de clases de colección estándar. La clase ArrayList se define dentro del java.util paquete, se extiende el AbstractList clase, que también es una clase de colección estándar, y también implementa Lista, una interfaz definida en las interfaces de colección. En Java, una matriz estándar siempre tiene una longitud fija. Eso significa una vez creado; no crece ni se reduce dinámicamente en tamaño. Por lo tanto, debe tener el conocimiento previo de la longitud de la matriz que está utilizando. Pero, a veces puede suceder que la longitud requerida se revele en tiempo de ejecución, por lo que, para manejar este tipo de situación, Java introdujo ArrayList.
ArrayList es una clase utilizada para la creación dinámica de una matriz que contiene las referencias a los objetos. Esta matriz podría crecer en tamaño cuando sea necesario. La declaración de clase es la siguiente:
clase ArrayList Aquí, E especifica el tipo de objetos que contendrá una matriz. La matriz creada es de longitud variable y aumenta y disminuye de tamaño cuando se agregan o eliminan objetos de la lista. ArrayList no está sincronizado, lo que significa que más de un hilo puede operar en la matriz al mismo tiempo. Por ejemplo, si un hilo agrega una referencia de objeto a la matriz y otro hilo quita una referencia de objeto de la misma matriz al mismo tiempo. La creación de una matriz dinámica usando la clase ArrayList: Lista de arreglo En el código anterior, puedes ver eso; Creé una matriz de objetos de tipo cadena. Agregué algunos objetos a la matriz S1 usando el método add (), y luego eliminé algunos objetos usando el método remove (). Puede observar que si no especifica el tamaño inicial de la matriz, tendrá una longitud de "0". Como puede ver, la matriz crece y disminuye de tamaño a medida que agrega y elimina los elementos. Vector es una clase Legacy que se ha rediseñado para admitir la clase de colección en la jerarquía de Framework de colección. La clase vectorial también se define en java.util paquete, extendido por AbstractList clase e implementado por el Lista interfaz. La clase Vector se declara de la siguiente manera: Vector de clase Aquí, la E define el tipo de objeto que se almacenará en una matriz. Una matriz creada con la clase Vector es de longitud variable. Aumenta el doble de su tamaño si no se especifica el incremento. Comprendamos la creación de una matriz usando Vector. Vector En el código anterior puede ver eso, mencioné particularmente el tamaño y el valor de incremento en el constructor de Vector, respectivamente, al declarar la matriz de objetos de cadena. Por lo tanto, puede observar que a medida que finaliza el límite de la matriz, se incrementa en el valor proporcionado al constructor durante la declaración. Concluyo diciendo que el uso de ArrayList es mejor que usar Vector, ya que funciona mejor y más rápido.Definición de vector
Similitudes:
Conclusión: