比方說,我們有:Java流從地圖
Map<String, Map<String, List<Integer>>>
,我想獲得
Map<String, List<Integer>>
我用平面地圖:
myMap.values().stream().flatMap(p -> p.values());
獲得流,但我不知道如何使用collect。我tride也:
myMap.values().stream().flatMap(p -> p.values()).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
但這不起作用
編輯:
我已經給定的數據:
List<Integer> numbers1 = Arrays.asList(1, 2);
List<Integer> numbers2 = Arrays.asList(3, 4);
List<Integer> numbers3 = Arrays.asList(5, 6);
List<Integer> numbers4 = Arrays.asList(7, 8);
Map<String, List<Integer>> innerMap1 = new HashMap<>();
innerMap1.put("first", numbers1);
innerMap1.put("second", numbers2);
Map<String, List<Integer>> innerMap2 = new HashMap<>();
innerMap2.put("third", numbers3);
innerMap2.put("forth", numbers4);
Map<String, Map<String, List<Integer>>> outerMap = new HashMap<>();
outerMap.put("mon", innerMap1);
outerMap.put("tue", innerMap2);
,並從這個代碼,我想獲得一個Map<String, List<Integer>>
帶數據:
謝謝你的工作 –