Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/03/2013, 15:45
gt_int
 
Fecha de Ingreso: febrero-2013
Mensajes: 50
Antigüedad: 12 años, 1 mes
Puntos: 0
List<Map<Integer,Integer>>

Que tal compañeros, estoy teniendo problemas con un List<Map<Integer,Integer>>, os explico, hice una consulta en Hibernate para conseguir averiguar de cada alumno la cantidad de asignaturas en las que estaba matriculado, aquí la consulta:

Código JAVA:
Ver original
  1. Query query = session.createSQLQuery("select e.alumno_id, sum(e.cantidadAsignaturas) from Expedientes e group by e.alumno_id");
  2. query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
  3. List<Map<Integer,Integer>> result = query.list();



La consulta os la puse para contaros mi problema desde 0, pero no es relevante para el problema. Con esa consulta obtengo un Map por cada alumno, como cada alumno tiene un Map, cada Map es añadido a un List. Entonces si hago lo siguiente:

Código JAVA:
Ver original
  1. List<Map<Integer,Integer>> listado = alumnoManager.getAlumnosAsignaturas();
  2.             for(Map<Integer,Integer> o : listado){
  3.                 System.out.println(o.keySet()+"---"+o.values());
  4.             }

En Consola me devuelve:

[sum(e.cantidadAsignaturas), alumno_id]---[2, 1]
[sum(e.cantidadAsignaturas), alumno_id]---[2, 3]
[sum(e.cantidadAsignaturas), alumno_id]---[1, 4]

Yo lo que quiero conseguir es a partir del List<Map<Integer,Integer>> conseguir un solo Map<Integer,Integer> donde la clave sea el alumno_id y el valor la cantidad de asignaturas quedanto el Map así:
Clave --> Valor
1 --> 2
3 --> 2
4 --> 1


Pero no sé cómo hacer esa conversión, ¿alguien podría ayudarme u orientarme?.

De antemano daros las gracias, a ver si pudiérais ayudarme.

Un cordial saludo.

Última edición por gt_int; 11/03/2013 a las 16:38