地図<Integer型、リストに一覧<地図<文字列、オブジェクト>>して、Javaストリームグループ<整数>>

DMCG:

私が持っています

List<Map<String, Object>>

春NamedParameterJdbcTemplate queryForList呼び出しから来ます。データ・リターンは次のようになります。

[{"id":5,"uid":6}, {"id":5,"uid":7}, {"id":6,"uid":8}, {"id":7,"uid":7}, {"id":8,"uid":7}, {"id":8,"uid":9}]

どのように私は次の形式でデータを並べ替えることができますか?

{5:[6, 7], 6:[8], 7:[7], 8:[7, 9]}

イムは返すように探して Map<Integer, List<Integer>>

誰もが、私はこれを達成することができますどのようにアイデアを持っていますか?すべてのヘルプは大歓迎します?

ernest_k:

グループ化によってコレクタを使用しているときには、整数にキーと値をマッピングすることができます。

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())));

使用する((Number) map.get("id")).intValue()場合にだけ値はロングです。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=223128&siteId=1
おすすめ