您可以遍历Map并使用new ArrayList(Collections)构造函数从存储在原始 Map 中的 List 创建一个 List Set..并将其放入 new Map ..
Map<String, Set<String>> givenMap = new HashMap<String, Set<String>>();
Map<String, List<String>> newMap = new HashMap<String, List<String>>();
Set<String> newSet = new HashSet<String>();
newSet.add("rohit");
givenMap.put("a", newSet);
givenMap.put("b", newSet);
givenMap.put("c", newSet);
for (String str: givenMap.keySet()) {
newMap.put(str, new ArrayList<String>(givenMap.get(str)));
}
for(String str:newMap.keySet()) {
System.out.println(newMap.get(str));
}
如果您想使用通用方法..您需要将您的方法更改为:-
public static <K, V> void changeSetToList (Map<K, Set<V>> givenMap,
Map<K, List<V>> newMap) {
for (K str: givenMap.keySet()) {
newMap.put(str, new ArrayList<V>(givenMap.get(str)));
}
for(K str:newMap.keySet()) {
System.out.println(newMap.get(str));
}
}