Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con List en JAVA J2EE

Estas en el tema de Problema con List en JAVA J2EE en el foro de Java en Foros del Web. Buenos días compañeros Les cuento: Tengo un java un List<Map<String, Object>> Que tiene este contenido: {PARTE_A=1, PARTE_B=0, VALOR=0, MOMENTO=S}, {PARTE_A=1, PARTE_B=1, VALOR=0, MOMENTO=S}, {PARTE_A=1, PARTE_B=1, ...
  #1 (permalink)  
Antiguo 24/11/2011, 02:58
 
Fecha de Ingreso: septiembre-2007
Mensajes: 152
Antigüedad: 16 años, 7 meses
Puntos: 1
Problema con List en JAVA J2EE

Buenos días compañerosLes cuento:

Tengo un java un List<Map<String, Object>>

Que tiene este contenido:

{PARTE_A=1, PARTE_B=0, VALOR=0, MOMENTO=S}, {PARTE_A=1, PARTE_B=1, VALOR=0, MOMENTO=S}, {PARTE_A=1, PARTE_B=1, VALOR=1, MOMENTO=S}, {PARTE_A=1, PARTE_B=1, VALOR=2, MOMENTO=S}, {PARTE_A=1, PARTE_B=1, VALOR=3, MOMENTO=S}, {PARTE_A=1, PARTE_B=1, VALOR=4, MOMENTO=S}, {PARTE_A=1, PARTE_B=1, VALOR=5, MOMENTO=S}, {PARTE_A=1, PARTE_B=1, VALOR=6, MOMENTO=S}, {PARTE_A=1, PARTE_B=1, VALOR=7, MOMENTO=S}, {PARTE_A=1, PARTE_B=1, VALOR=8, MOMENTO=S}, {PARTE_A=1, PARTE_B=2, VALOR=0, MOMENTO=S}, {PARTE_A=1, PARTE_B=2, VALOR=6, MOMENTO=S}, {PARTE_A=1, PARTE_B=3, VALOR=0, MOMENTO=S}, {PARTE_A=4, PARTE_B=7, VALOR=6, MOMENTO=S},

No encuentro la manera de poder recorrer uno a uno cada elemento de la List y los valores de cada posición que tiene cada elemento de la misma, ya que tengo que hacer unas ciertas comprobaciones para cada posición y valor.

Alguien me podria decir como se hace?

Otros datos de interés:

A modo de memorizarlo ya que el tratamiento lo hago en otra clase.

Tengo un class llamada ListaResultadoEnlacesExternos, con String PARTE_A, PARTE_B, VALOR, MOMENTO. Con sus respectivos setters y getters.

Luego en la clase donde se me retornan estos datos he creado un ArrayList de ArrayList<ListaResultadoEnlacesExternos>

Espero que alguien me pueda dar algun tipo de solución a mi problema!

Muchas gracias
Saludos!
  #2 (permalink)  
Antiguo 24/11/2011, 09:22
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Problema con List en JAVA J2EE

Para recorrer una lista de ese tipo puedes usar un iterador:

Código Java:
Ver original
  1. List<Map<String,Object>> lista = new LinkedList<Map<String,Object>>();
  2.  
  3. //Insertamos elementos en la lista
  4.  
  5. //Recorrer con iterator
  6.  
  7. Iterator<Map<String,Object>> iterador = lista.iterator();
  8.  
  9. //con el bucle while vas recorriendo uno a uno cada elemento de la lista
  10. while(iterador.hasNext()){
  11.  
  12. Map<String,Object> mapa = iterador.next();
  13.  
  14. //haces lo que quieras con mapa
  15. }
  16.  
  17. /*
  18.  * Otra forma es usando listIterator (te permite recorrer en ambos sentidos la lista) e insertar y borrar elementos
  19.  */
  20.  
  21. ListIterator iteratorLista = lista.listIterator();
  22.  
  23. //con el bucle while vas recorriendo uno a uno cada elemento de la lista
  24. while(iteradorLista.hasNext()){
  25.  
  26. Map<String,Object> mapa = iterador.next();
  27.  
  28. //haces lo que quieras con mapa
  29. }
  30.  
  31.  
  32. //Otra forma es con el bucle foreach (es como el iterador)
  33.  
  34. for(Map<String,Object> mapa : lista){
  35.  
  36.  //haces lo que quieras con mapa
  37. }
  #3 (permalink)  
Antiguo 25/11/2011, 07:08
 
Fecha de Ingreso: septiembre-2007
Mensajes: 152
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Problema con List en JAVA J2EE

Gracias alexg88

Me ha funcionado al final de la siguiente manera.

for ( int indice = 0; indice < end; indice++ )
{
lista.get(indice).getIdSolapa();
}

Lo ves correcto?

Saludos
  #4 (permalink)  
Antiguo 25/11/2011, 07:26
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con List en JAVA J2EE

Si utilizas Java >= 5 puedes usar un enhanced for (o foreach):
Código Javascript:
Ver original
  1. for(Map<String, Object> mapa : lista) {
  2.   //Hacer algo
  3. }
  #5 (permalink)  
Antiguo 26/11/2011, 07:31
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Problema con List en JAVA J2EE

Esa forma es correcta y si estás usando un ArrayList, es eficiente.

En cambio, si usas una LinkedList u otro tipo de lista que sea enlazada es muy ineficiente, porque cada vez que haces get(indice), se realiza un recorrido lineal por cada elemento de la lista.

Ejemplo:

Para recorrer una lista de 50 elementos:

- Mediante un iterador serían solo 50 pasos (por llamarlo de alguna manera)

- Mediante un bucle y usando get(indice) serían:

1+2+3+4+5+6+ ... +50 = (50 * (50 +1))/2 = 1275 "pasos"

Es decir, la complejidad de recorrer una lista con el iterator es lineal (una lista de n elementos se recorren en n pasos), mientras que de tu forma es cuadrática (una lista de n elementos se recorre en n^2 pasos)

Espero que te haya quedado claro.

Saludos.

Etiquetas: j2ee, list, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:29.