![](/img/trans.png)
[英]Convert Map<Integer, List<Strings> to Map<String, List<Integer>
[英]how to convert Map<Integer, List<String>> to Map<Integer, Set<String>>
Map<Integer, List<String>> mapList = new TreeMap<>();
Map<Integer, Set<String>> mapSet = new TreeMap<>();
Set<String> set = new TreeSet<>();
for (Map.Entry<Integer, List<String>> entry : entriesSortedByValues(mapList)) {
set.addAll(entry.getValue());
mapSet.put(entry.getKey(), set);
}
它不起作用。 我想將mapList復制到mapSet。
您繼續為所有鍵添加和修改相同的對象。
您當前的工作可以這樣查看:
因此,要解決此問題,請在循環的每次迭代中創建一個新的Set。
Map<Integer, List<String>> mapList = new TreeMap<>();
Map<Integer, Set<String>> mapSet = new TreeMap<>();
for (Map.Entry<Integer, List<String>> entry : entriesSortedByValues(mapList)) {
Set<String> set = new TreeSet<>();
set.addAll(entry.getValue());
mapSet.put(entry.getKey(), set);
}
您也可以使用將集合作為參數的構造函數。
Map<Integer, List<String>> mapList = new TreeMap<>();
Map<Integer, Set<String>> mapSet = new TreeMap<>();
for (Map.Entry<Integer, List<String>> entry : entriesSortedByValues(mapList)) {
mapSet.put(entry.getKey(), new TreeSet<>(entry.getValue()));
}
您可以使用HashSet
的構造函數將List轉換為Set,例如new HashSet<String>(myList);
Map<Integer, List<String>> mapList = new TreeMap<>();
Map<Integer, Set<String>> mapSet = new TreeMap<>();
for (Map.Entry<Integer, List<String>> entry : entriesSortedByValues(mapList)) {
Set<String> set = new HashSet<String>(entry.getValue());
mapSet.put(entry.getKey(), set);
}
在您的for循環中添加Set
for (Map.Entry<Integer, List<String>> entry : entriesSortedByValues(mapList)) {
Set<String> set = new TreeSet<>();
set.addAll(entry.getValue());
mapSet.put(entry.getKey(), set);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.