Colecciones
2 participantes
Página 1 de 1.
Colecciones
ArrayList, se parecen a los Vector, pero me parecen más comodos se declaran asi:
ArrayList <ClaseContenida> miArrayList = new ArrayList();
Se pueden recorrer con un iterator o con un for each:
Iterator:
Iterator <ClaseContenida> it = miArrayList.Iterator();
while(it.hasNext()){
ClaseConenida elemento = it.next;
...........
}
For-each
for (ClaseContenida elemento : miArrayList){
.......
}
ArrayList <ClaseContenida> miArrayList = new ArrayList();
Se pueden recorrer con un iterator o con un for each:
Iterator:
Iterator <ClaseContenida> it = miArrayList.Iterator();
while(it.hasNext()){
ClaseConenida elemento = it.next;
...........
}
For-each
for (ClaseContenida elemento : miArrayList){
.......
}
Re: Colecciones
Aunque en un primer momento y para muchos programas utilizar un ArrayList o Vector puede ser lo mismo, sí que hay diferencias entre ellos:
* Sincronización: La clase Vector es sincronizada (synchronized) y, por tanto, su contenido está protegido de otros hilos (thread-safe), es decir, si un hilo está modificando un Vector otro hilo no podrá acceder a él hasta que este haya terminado . Y al contrario, los ArrayList NO son sincronizados y por tanto no son thread-safe (pueden pasar cosas raras... si un hilo está modificando un ArrayList y otro está accediendo a su información). Hay que tener en cuenta 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, y los ArrayList crecen añadiendo el 50% de su espacio anterior.
* Sincronización: La clase Vector es sincronizada (synchronized) y, por tanto, su contenido está protegido de otros hilos (thread-safe), es decir, si un hilo está modificando un Vector otro hilo no podrá acceder a él hasta que este haya terminado . Y al contrario, los ArrayList NO son sincronizados y por tanto no son thread-safe (pueden pasar cosas raras... si un hilo está modificando un ArrayList y otro está accediendo a su información). Hay que tener en cuenta 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, y los ArrayList crecen añadiendo el 50% de su espacio anterior.
fran- HelloWolrd!
- Mensajes : 2
Fecha de inscripción : 16/07/2010
Edad : 41
Localización : Urretxu
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|
Mar Ago 31, 2010 5:24 pm por Aitor
» Direcciones interesantes de programación
Vie Ago 27, 2010 9:53 am por Aitor
» sobrevivi a semana grande
Vie Ago 27, 2010 9:51 am por Aitor
» Swing JDesktopPane
Sáb Ago 14, 2010 2:19 pm por Aitor
» Trabajar con ficheros Microsoft (Excel, Word...), librerias POI
Vie Ago 13, 2010 1:15 pm por Aitor
» ¿Otra vez nos piden el CV?
Miér Jul 28, 2010 2:17 pm por Edur00
» Menús en Ribbon (Proyecto Flamingo)
Miér Jul 21, 2010 7:50 pm por Aitor
» Colecciones
Mar Jul 20, 2010 7:00 pm por fran
» activo
Mar Jul 20, 2010 5:18 pm por superjoxe