हम अमरूद के साथ ऐसा कैसे कर सकते हैं? वापसी प्रकार में List<K>
की उपस्थिति पर ध्यान दें क्योंकि कई कुंजी किसी भी सामान्य मानचित्र में एक ही मान पर मानचित्र कर सकते हैं।गैर-अद्वितीय मूल्यों के साथ गुवा के साथ नक्शा उलटा कैसे करें?
public static <K, V> Map<V, List<K>> inverse(Map<K, V> map){
Map<V, List<K>> result = new LinkedHashMap<V, List<K>>();
for (Map.Entry<K, V> entry : map.entrySet()) {
if(!result.containsKey(entry.getValue())){
result.put(entry.getValue(), new ArrayList<K>());
}
result.get(entry.getValue()).add(entry.getKey());
}
return result;
}
BiMap
मूल्यों की Unicity पर जोर देते हैं लगता है, लेकिन मैं इस लक्जरी नहीं है।
अच्छा, वह तेज़ था। – lacroix1547
लेकिन मल्टीमैप में कनवर्ट करने के लिए मजबूर होना परेशान है। और प्रदर्शन पर किए गए प्रयासों पर विचार करते हुए, भविष्य में इसे और अधिक सेक्सी के साथ सुधार किया जा सकता है। – lacroix1547
@ lacroix1547 हू? 'Multimaps.forMap()' दिए गए मानचित्र का _view_ देता है। यह लगभग कोई काम नहीं करता है ... यह सिर्फ एक कन्स्ट्रक्टर को कॉल करता है और मानचित्र को एक फ़ील्ड में असाइन करता है। बस। इसे एक एडाप्टर पर विचार करें जो आपको 'invertFrom()' जैसी विधियों के साथ मानचित्र का उपयोग करने की अनुमति देता है जो 'मल्टीमैप' की अपेक्षा करता है। – ColinD