उपयोग कर सकते हैं अद्वितीय नहीं हैं, तब भी आप मानचित्र का उपयोग कर सकते हैं:
Map<Integer, String> map = new IdentityHashMap<Integer, String>();
map.put(new Integer(1), "string");
IdentityHashMap -, प्रत्येक वस्तु के लिए देशी hashCode implemetation उपयोग करें ताकि आप अद्वितीय आईडी की जरूरत नहीं है, ख क्योंकि आपको ऑपरेटर 'नया' के माध्यम से सभी इंटीजर बनाना होगा, और ऑटोबॉक्सिंग का उपयोग न करें, क्योंकि cache mechanism है।
इसके अलावा JVM पैरामीटर भी है, जो कैश आकार को नियंत्रित करता है '-XX: AutoBoxCacheMax ='। लेकिन इस पैरामीटर का उपयोग करके आप कैश को अक्षम नहीं कर सकते हैं, अगर आप शून्य पर आकार सेट करते हैं, तो कैश इसे अनदेखा कर देगा और डिफ़ॉल्ट का उपयोग करेगा: [-128; 127]। यह पैरामीटर केवल इंटीग्रर्स के लिए है, लांग के लिए ऐसा कोई पैरामीटर नहीं है।
अद्यतन इसके अलावा गैर अद्वितीय चाबी के लिए आप मल्टीमैप किसी प्रकार का इस्तेमाल कर सकते हैं: मानचित्र> नक्शा
nonunique कुंजी के साथ उस में
और दुकान अपने मान:
map.put(1, new ArrayList<String>());
map.get(1).add("value1");
map.get(1).add("value2");
आप उपयोग कर सकते हैं HashMap उदाहरण के लिए इसके लिए।
इसके अलावा आप Google संग्रह में मल्टीमैप कार्यान्वयन भी ढूंढ सकते हैं: 'guava'।
यदि आईडी अद्वितीय हैं तो हैशैप हैश मैप <इंटीजर, स्ट्रिंग> अन्यथा एक नई कक्षा बनाएं जो सूची –