h1

Vector VS ArrayList

22 agosto 2009

Una duda que siempre me salta: ¿ uso un Vector o un ArrayList? y la respuesta es…..depende, no hay una respuesta fácil, si es lo que búscamos, como siempre en el mundo de la programación la respuesta es DEPENDE.

En este tema en concreto hay que tener en cuenta los siguientes factores:

  • API: Ambas clases son muy parecidas, desde el punto de vista de la API aunque existen algunas diferencia
  • Crecimiento de las listas: Tanto los vectores como los arraylist guardan los datos en un array. Al ir metiendo datos en el array puede llegar el caso que se quede sin sitio para uno más, por lo que hay que incementar el tamaño del array, mientras que el vector dobla su tamaño original, el arraylist lo incrementa en un 50%. Puede darse el caso que suframos un gran impacto de rendimiento si se está cambiando el tamaño continuamente. Por lo que se suele establecer un tamaño inicial lo suficientemente grande, así no sufrimos la penalización de  aumentar el tamaño. En este sentido, los vectores tienen una pequeña ventaja, se le puede indicar el valor del incremento.
  • Patrones de uso:  A la hora de obtener elementos de una posición especifica, o añadir o elminiar elementos al final del array, tanto el vector como el arraylist, tienen un gran rendimiento, pero para cualquier otro caso, es decir, eliminar y añadir elementos de cualquier otro sitio, es menos efecitvo, con lo que es mejor incluso usar otra clase, por ejemplo, LinkedList, aunque este genera un poco más de “basura.”
  • Sincronización: Los vectores están sincronizados, por lo que son “thread safe” , si no necesitamos esta caracteristica, es mejor usar un ArrayList, así no pagamos el precio de la sincronización.
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: