मैं नीचेपरिवर्तित मानचित्र <K, V> मानचित्र <V,List<K>>
Map<String, String> values = new HashMap<String, String>();
values.put("aa", "20");
values.put("bb", "30");
values.put("cc", "20");
values.put("dd", "45");
values.put("ee", "35");
values.put("ff", "35");
values.put("gg", "20");
मैं प्रारूप Map<String,List<String>>
में नया नक्शा बनाना चाहते हैं के रूप में नक्शे है, नमूना उत्पादन किया जाएगा के रूप में
"20" -> ["aa","cc","gg"]
"30" -> ["bb"]
"35" -> ["ee","ff"]
"45" -> ["dd"]
मैं क्या करने में सक्षम हूँ इकाई
Map<String, List<String>> output = new HashMap<String,List<String>>();
for(Map.Entry<String, String> entry : values.entrySet()) {
if(output.containsKey(entry.getValue())){
output.get(entry.getValue()).add(entry.getKey());
}else{
List<String> list = new ArrayList<String>();
list.add(entry.getKey());
output.put(entry.getValue(),list);
}
}
स्ट्रीम के माध्यम से इसे बेहतर ढंग से किया जा सकता है रों?