DMCG:
j'ai un
List<Map<String, Object>>
provenant d'un appel printemps NamedParameterJdbcTemplate queryForList. Le retour de données ressemble à ceci:
[{"id":5,"uid":6}, {"id":5,"uid":7}, {"id":6,"uid":8}, {"id":7,"uid":7}, {"id":8,"uid":7}, {"id":8,"uid":9}]
Comment puis-je réorganiser les données dans le format suivant?
{5:[6, 7], 6:[8], 7:[7], 8:[7, 9]}
Je cherche à retourner un Map<Integer, List<Integer>>
Quelqu'un at-il une idée comment je peux y parvenir? Toute aide appréciée ??
ernest_k:
Vous pouvez mapper les touches et les valeurs en nombres entiers en utilisant un groupement par collecteur:
List<Map<String, Object>> maps = null;
Map<Integer, List<Integer>> result = maps.stream()
.collect(Collectors.groupingBy(
map -> ((Number) map.get("id")).intValue(),
Collectors.mapping(map -> ((Number) map.get("uid")).intValue(),
Collectors.toList())));
En utilisant ((Number) map.get("id")).intValue()
juste au cas où la valeur est longue.