我想一個Map <String, Integer>
從List<String>
轉換在Java 8是這樣的:Java列表<String>地圖<字符串,整數>皈依
Map<String, Integer> namesMap = names.stream().collect(Collectors.toMap(name -> name, 0));
,因爲我有一個字符串列表,而且我喜歡創建一個Map,其中鍵是列表的字符串,並且值是整數(零)。
我的目標是計算字符串列表的元素(稍後在我的代碼中)。
我知道很容易將它轉換成「舊」的方式;
Map<String,Integer> namesMap = new HasMap<>();
for(String str: names) {
map1.put(str, 0);
}
但我想知道還有一個Java 8解決方案。
只是改變'0'到'名字 - > 0':'地圖<字符串,整數> namesMap = names.stream()。collect(Collectors.toMap(name - > name,name - > 0));'但是如果你有重複的話,這將失敗。如果要計算出現次數,首先要做的就是:Map namesMap = names.stream()。collect(Collectors.groupingBy(name - > name,Collectors.counting()));'除了'name - > name',你也可以使用'Function.identity()'。 –
Holger
哦,它工作,謝謝! :) – LakiGeri