Vector o ArrayList
Posted Agosto 15th, 2007 by soulpower
Clase Vector o Clase ArrayList
¿Qué es mejor usar en Java? ¿Un Vector o un ArrayList?
- Sincronización: La clase Vector es sincronizada (synchronized), por tanto, su contenido está protegido de otros hilos, es decir, es thread-safe(Wiki).
Y al contrario, los ArrayList no son sincronizados y por tanto no son thread-safe. Hay que tener en cuanta esto porque los vectores tienen un coste en tiempo de ejecución que no tienen los ArrayList. Si no necesitas thead-safe, usa ArrayList.
- Tamaño de los datos:Ambas estructuras necesitan un Array para almacenar los datos internamente. Cuando se insertan datos, tanto unos como otros tienen que crecer para que no haya un desbordamiento. He aquí la diferencia:
Los vectores crecen duplicando su espacio
Los ArrayList crecen añadiendo el 50% de su espacio anterior.
:)
- blog de soulpower
- Inicie sesión o regístrese para enviar comentarios
Saludos
Hola me parece muy interesante, pero podrías ser más especifico?...podrías demostrar lo que dices por favor :D no se tal vez con alguna prueba de profiling o midiendo la cantidad de memoria en heap que ocupen cada una de la estructuras antes descritas. Te lo agradeceríamos enormemente. Saludos
Habria que mencionar que a
Habria que mencionar que a Vector se le puede asignar una capacidad de incremento deseada :) , como:
new Vector(capacidad_inicial, incremento);
no siempre duplican su espacio :P , buen blog soulpower n.n , felicidades
=)