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

Recorrer Array de Map

Estas en el tema de Recorrer Array de Map en el foro de Java en Foros del Web. Tengo en java un listado de Map pero no se como ir cogiendo los datos. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: Ver original List < Map < ...
  #1 (permalink)  
Antiguo 10/09/2015, 05:29
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 352
Antigüedad: 15 años, 6 meses
Puntos: 5
Recorrer Array de Map

Tengo en java un listado de Map pero no se como ir cogiendo los datos.

Código Java:
Ver original
  1. List<Map<Proyecto,List<TiposTarifasCantidadData>>> proyectosTiposTarifas)

No se como recorrerlo y recuperar el Proyecto y el listado de cada item.

Alguien me puede ayudar.
GRACIAS
  #2 (permalink)  
Antiguo 10/09/2015, 06:22
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 1 mes
Puntos: 78
Respuesta: Recorrer Array de Map

Hola,
tienes que hacerlo de esta manera:


Esto es lo que tienes tú exactamente (pero con tus atributos)
Código Java:
Ver original
  1. //*******************************************
  2.     // Rellenamos una lista como la que tienes
  3.     //*******************************************
  4.     TiposTarifasCantidadData tt = new TiposTarifasCantidadData();
  5.     tt.setTipo("barata");
  6.    
  7.     List<TiposTarifasCantidadData> lista = new ArrayList<TiposTarifasCantidadData>();
  8.     lista.add(tt);
  9.    
  10.     Proyecto proyecto = new Proyecto();
  11.     proyecto.setNombre("Nombre");
  12.    
  13.     Map<Proyecto, List<TiposTarifasCantidadData>> mapa = new HashMap<Proyecto, List<TiposTarifasCantidadData>>();
  14.     mapa.put(proyecto, lista);
  15.    
  16.     List<Map<Proyecto, List<TiposTarifasCantidadData>>> proyectoTiposTarifas = new ArrayList<Map<Proyecto, List<TiposTarifasCantidadData>>>();
  17.     proyectoTiposTarifas.add(mapa);

De modo que lo que tienes que recorrer es esto (lo que tienes tú):
Código Java:
Ver original
  1. List<Map<Proyecto, List<TiposTarifasCantidadData>>> proyectoTiposTarifas

Y para extraerlo tienes que hacerlo por orden:

Código Java:
Ver original
  1. //********************************************
  2.     // Empezamos a extraer por orden
  3.     //********************************************
  4.    
  5.     //Primero recorremos la lista principal
  6.     for (int i=0;i<proyectoTiposTarifas.size();i++){
  7.        
  8.         //Extraemos el MAPA
  9.         Map mapaObj = proyectoTiposTarifas.get(i);
  10.        
  11.         //Del Mapa, sacamos el Proyecto (clave) y la lista (valor)
  12.         Set listaMapa = mapaObj.entrySet();
  13.        
  14.         //Nos preparamos para Iterar la lista
  15.         Iterator it = listaMapa.iterator();
  16.        
  17.         //Iteramos
  18.         while(it.hasNext()){
  19.            
  20.             //Extraemos el MAPA de cada entrada de la lista
  21.             Map.Entry<Proyecto, List<TiposTarifasCantidadData>> entrada = (Map.Entry<Proyecto, List<TiposTarifasCantidadData>>)it.next();
  22.            
  23.             //El Proyecto...
  24.             Proyecto nombreProyecto = entrada.getKey();
  25.            
  26.             //Y la lista...
  27.             List<TiposTarifasCantidadData> listaData =  entrada.getValue();
  28.            
  29.             //Los mostramos....
  30.             System.out.println(nombreProyecto.getNombre());
  31.            
  32.             for (TiposTarifasCantidadData obj : listaData){
  33.                 System.out.println(obj.getTipo());
  34.                
  35.             }
  36.         }
  37.        
  38.     }


Cuya salida sería:

Código Java:
Ver original
  1. Nombre //(atributo de proyecto)
  2. barata //(atributo de TiposTarifasCantidadData)

Saludos!
  #3 (permalink)  
Antiguo 10/09/2015, 06:25
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Recorrer Array de Map

Buenas,

Recorrer un Map en Java <8
Código Java:
Ver original
  1. for (Map.Entry<Proyecto,List<TiposTarifasCantidadData>> entry : map.entrySet()) {
  2.     System.out.println("Proyecto : " + entry.getKey() + " Lista : " + entry.getValue());
  3. }

Recorrer un map en Java 8
Código Java:
Ver original
  1. map.forEach((k,v)->System.out.println("Proyecto : " + k + " Lista : " + v));

Un saludo
__________________
If to err is human, then programmers are the most human of us

Etiquetas: map
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 07:42.