的問題是你有一個李st地圖。下面的代碼應工作:
Map<String, String> result = new HashMap<>();
steps.stream().forEach(map -> {
result.putAll(map.entrySet().stream()
.collect(Collectors.toMap(entry -> entry.getKey(), entry -> (String) entry.getValue())));
});
如果我們嘗試運行這個例子
Map<String, Object> steps1 = new HashMap<>();
steps1.put("key11", "value11");
steps1.put("key12", "value12");
Map<String, Object> steps2 = new HashMap<>();
steps2.put("key21", "value21");
steps2.put("key22", "value22");
List<Map<String, Object>> steps = new ArrayList<>();
steps.add(steps1);
steps.add(steps2);
Map<String, String> result = new HashMap<>();
steps.stream().forEach(map -> {
result.putAll(map.entrySet().stream()
.collect(Collectors.toMap(entry -> entry.getKey(), entry -> (String) entry.getValue())));
});
System.out.println(result);
它高興地給了我們這樣的輸出:
{key12=value12, key11=value11, key22=value22, key21=value21}
可惜這不是去上班。 你忘記它的地圖列表, 它會導致顯示java.lang.NullPointerException 試圖使用你確切的代碼 – Lenar
它爲我 – user489872
s.get的演員(「密鑰」)是沒有必要的 – user489872