metodos inicializar imprimir guardar entre diferencia datos como clase java vector arraylist

inicializar - imprimir arraylist java



¿Cuáles son las diferencias entre ArrayList y Vector? (7)

Básicamente, tanto ArrayList como Vector usan ambos Object Array interno.

ArrayList: La clase ArrayList extiende AbstractList e implementa la interfaz de lista y RandomAccess (interfaz de marcador). ArrayList admite matrices dinámicas que pueden crecer según sea necesario. Nos da la primera iteración sobre los elementos. ArrayList utiliza Object Array interno; se crean con un tamaño inicial predeterminado de 10. Cuando se excede este tamaño, la colección aumenta automáticamente a la mitad del tamaño predeterminado que es 15.

Vector: Vector es similar a ArrayList pero las diferencias son, está sincronizado y su tamaño inicial predeterminado es 10 y cuando el tamaño excede su tamaño, aumenta al doble del tamaño original, lo que significa que el nuevo tamaño será 20. El vector es la única clase Aparte de ArrayList para implementar RandomAccess. Vector tiene cuatro constructores de los cuales uno toma dos parámetros Vector (int initialCapacity, int capacityEncrement) capacityIncrement es la cantidad en la cual la capacidad aumenta cuando el vector se desborda, por lo que tiene más control sobre el factor de carga.

Algunas otras diferencias son:

¿Cuáles son las diferencias entre las dos estructuras de datos ArrayList y Vector , y dónde debería usar cada una de ellas?


Como dice la documentación, un Vector y una ArrayList son casi equivalentes. La diferencia es que el acceso a un Vector está sincronizado, mientras que el acceso a un ArrayList no lo está. Lo que esto significa es que solo un hilo puede llamar a los métodos en un Vector a la vez, y hay una pequeña sobrecarga en la adquisición del bloqueo; Si usa un ArrayList , este no es el caso. En general, querrás usar un ArrayList ; en el caso de un solo hilo, es una mejor opción, y en el caso de varios hilos, obtiene un mejor control sobre el bloqueo. ¿Quieres permitir lecturas concurrentes? Multa. ¿Quieres realizar una sincronización para un lote de diez escrituras? También está bien. Requiere un poco más de cuidado por tu parte, pero es probablemente lo que quieres. También tenga en cuenta que si tiene un ArrayList, puede usar la función Collections.synchronizedList para crear una lista sincronizada, obteniendo así el equivalente de un Vector .


ArrayList es más nuevo y un 20-30% más rápido.

Si no necesita algo aparentemente evidente en Vector , use ArrayList


ArrayList y Vector implementan la interfaz de la Lista y mantienen el orden de inserción. Pero hay muchas diferencias entre las clases de ArrayList y Vector ...

ArrayList -

  1. ArrayList no está sincronizado.
  2. ArrayList incrementa el 50% del tamaño de la matriz actual si el número de elementos supera su capacidad.
  3. ArrayList no es una clase heredada, se introduce en JDK 1.2.
  4. ArrayList es rápido porque no está sincronizado.
  5. ArrayList usa la interfaz Iterator para atravesar los elementos.

Vector -

  1. Vector está sincronizado.
  2. Vector incrementos de Vector 100% significa que se duplica el tamaño de la matriz si el número total de elementos excede su capacidad.
  3. Vector es una clase heredada.

  4. Vector es lento porque está sincronizado, es decir, en un entorno de subprocesamiento múltiple, mantendrá los otros subprocesos en estado ejecutable o no ejecutable hasta que el subproceso actual libere el bloqueo del objeto.

  5. Vector utiliza la interfaz de enumeración para atravesar los elementos. Pero también puede usar iterador.

Consulte también: https://www.javatpoint.com/difference-between-arraylist-and-vector


Vector es una clase broken que no es segura para subprocesos, a pesar de estar "sincronizada" y solo es utilizada por estudiantes y otros programadores inexpertos.

ArrayList es la implementación de la lista de acceso utilizada por profesionales y programadores experimentados.

Los profesionales que desean una implementación de CopyOnWriteArrayList usan un CopyOnWriteArrayList .


Diferencias

  • Los vectores están sincronizados, ArrayLists no están sincronizados.
  • Métodos de crecimiento de datos

Use ArrayLists si no hay requisitos específicos para usar Vectores.

Sincronización

Si varios subprocesos acceden a un ArrayList simultáneamente, debemos sincronizar externamente el bloque de código que modifica la lista de forma estructural o simplemente modifica un elemento. La modificación estructural significa la adición o eliminación de elementos de la lista. Establecer el valor de un elemento existente no es una modificación estructural.

Collections.synchronizedList se usa normalmente en el momento de la creación de la lista para evitar cualquier acceso accidental no sincronizado a la lista.

Reference

Crecimiento de datos

Internamente, tanto ArrayList como Vector mantienen su contenido usando un Array. Cuando un elemento se inserta en un ArrayList o un Vector, el objeto deberá expandir su matriz interna si se queda sin espacio. Un Vector por defecto duplica el tamaño de su matriz, mientras que ArrayList aumenta su tamaño de matriz en un 50 por ciento.

Reference


Hay 2 diferencias principales entre Vector y ArrayList.

  1. Vector está sincronizado por defecto, y ArrayList no lo está. Nota: puede hacer que ArrayList también se sincronice pasando el objeto arraylist al método Collections.synchronizedList (). Medios sincronizados: se puede usar con múltiples hilos sin ningún efecto secundario.

  2. Las ArrayLists crecen en un 50% del tamaño anterior cuando el espacio no es suficiente para un nuevo elemento, mientras que Vector aumentará en un 100% del tamaño anterior cuando no haya espacio para el nuevo elemento entrante.

Aparte de esto, hay algunas diferencias prácticas entre ellos, en términos de esfuerzo de programación:

  1. Para obtener el elemento en una ubicación particular de Vector usamos la función elementAt (int index). Este nombre de la función es muy largo. En lugar de esto, en ArrayList tenemos get (int index) que es muy fácil de recordar y usar.
  2. De manera similar, para reemplazar un elemento existente con un elemento nuevo en Vector, usamos el método setElementAt (), que también es muy largo y puede irritar al programador para que lo use repetidamente. En lugar de esto, ArrayList tiene un método add (int index, object) que es fácil de usar y recordar. De este modo, tienen nombres de funciones más amigables y fáciles de usar en ArrayList.

¿Cuándo usar cuál?

  1. Trate de evitar el uso de vectores por completo. ArrayLists puede hacer todo lo que un Vector puede hacer. Más sobre ArrayLists no están sincronizadas por defecto. Si lo desea, puede sincronizarlo siempre que lo necesite utilizando la clase util util Collections.
  2. ArrayList tiene nombres de funciones fáciles de recordar y usar.

Nota : aunque el arrailista crece un 100%, puede evitarlo con el método de aseguramiento de la capacidad () para asegurarse de que está asignando suficiente memoria en las etapas iniciales.

Espero eso ayude.