私は を持っており、キーにリスト、最初のマップの値、および最初のマップに同じリストを持つ文字列のセットの値を含むHashMap<String, LinkedList<Integer>>
を作成したいと考えています。hashMapInverted<LinkedList<Integer>, Set<String>>
これどうやってするの?
私は を持っており、キーにリスト、最初のマップの値、および最初のマップに同じリストを持つ文字列のセットの値を含むHashMap<String, LinkedList<Integer>>
を作成したいと考えています。hashMapInverted<LinkedList<Integer>, Set<String>>
これどうやってするの?
できるよ:
Map<LinkedList<Integer>, Set<String>> mapInverted = new HashMap<>(myMap.size());
for(Entry<<String, LinkedList<Integer>> entry : myMap.entrySet()) {
String key = entry.getKey();
LinkedList<Integer> list = entry.getValue();
Set<String> strings = mapInverted.get(list);
if(strings == null) { // the list has not already been put in the map
strings = new HashSet<String>(); // create a new set
mapInverted.put(list, strings); // put the list and the new set
}
strings.add(key);
}
あなたが試すことができます -
Map<String, LinkedList<Integer>> map =new HashMap<String, LinkedList<Integer>>();
Map<LinkedList<Integer>, Set<String>> invertMap = new HashMap<LinkedList<Integer>, Set<String>>();
for (Entry<String, LinkedList<Integer>> entry : map.entrySet()) {
if(invertMap.containsKey(entry.getValue())){
invertMap.get(entry.getValue()).add(entry.getKey());
}else{
Set<String> set = new HashSet<String>();
set.add(entry.getKey());
invertMap.put(entry.getValue(), set);
}
}