Duda con una conversión en Java
Que tal compañero, estoy teniendo problemas con un List<Map<Integer,Integer>>, te explico,
hice una consulta en Hibernate para conseguir averiguar de cada alumno la cantidad de
asignaturas en las que estaba matriculado, aquí la consulta:
public List<Map<Integer,Integer>> getAlumnosAsignaturas(){
Session session = getSession();
List<Map<Integer,Integer>> result = new ArrayList<Map<Integer,Integer>>();
try {
session.beginTransaction();
Query query = session.createSQLQuery("select e.alumno_id, sum(e.cantidadAsignaturas) from Expedientes e group by e.alumno_id");
query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
result = query.list();
session.getTransaction().commit();
} catch (Exception e) {
System.out.println("Error en getElementById: " + e);
this.rollback();
}
return result;
}
La consulta la puse para contarte 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:
List<Map<Integer,Integer>> listado = alumnoManager.getAlumnosAsignaturas();
for(Map<Integer,Integer> o : listado){
System.out.println(o.keySet()+"---"+o.values());
}
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, ¿cómo podría conseguirlo?.
De antemano darte las gracias, a ver si pudieras ayudarme.
Un cordial saludo.