Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/09/2015, 06:22
ElAthlit
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
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!