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

List<Map<Integer,Integer>>

Estas en el tema de List<Map<Integer,Integer>> en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 11/03/2013, 15:45
 
Fecha de Ingreso: febrero-2013
Mensajes: 50
Antigüedad: 11 años, 2 meses
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

Etiquetas: Ninguno
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 22:26.