2010-11-09 8 views
5

बस प्रयोग करने के लिए, मैंने Hashmap उदाहरण में एकाधिक null कुंजी जोड़े। और यह शिकायत नहीं की थी। ऐसा करने का क्या फायदा है?क्या हैशप में एकाधिक नल कुंजियों को अनुमति देने का लाभ क्या है?

कोड है,

Map hmap = new HashMap(); 
hmap.put("sushil","sushil11"); 
hmap.put(null,null); 
hmap.put(null,"king"); 
hmap.put(null,"nagasaki"); 
hmap.put(null,null); 

कितने चाबियाँ नक्शे में देखते हैं?

उत्तर

3

स्विच का उपयोग करने के लिए इसका उपयोग किया जाता है: केस: डिफ़ॉल्ट व्यवहार।

उदाहरण:

समस्या परिभाषा: सीएस विभाग की इमारत में कॉफी शॉप। वे सीएस छात्र को $ 1.00 के लिए कॉफी प्रदान करते हैं, आईटी विभाग के छात्रों को $ 1.25 और अन्य $ 1.50 के लिए।

तब मानचित्र होगा:

कुंजी -> मूल्य

आईटी -> 1.25

सीएस -> 1.00

अशक्त -> 1,50

अगर (मानचित्र .containsKey (विभाग))

मूल्य = map.get (विभाग);

अन्य

मूल्य = map.get (शून्य);

पीएस - अगर मैं एक शब्द हूं तो मैं "विभाग-आईएसटी" नहीं हूं। :)

7

एक सामान्य हैशप में अनन्य कुंजी होगी, इसलिए आप बार-बार शून्य कुंजी के लिए प्रविष्टि को ओवरराइट कर रहे हैं। आपके पास एकाधिक समान कुंजी नहीं होंगी (इसके लिए आपको मल्टीमैप या इसी तरह की आवश्यकता होगी)

10

मुझे लगता है कि आपने एकाधिक null -keys को नहीं जोड़ा है। आप एक ही null कुंजी कई बार ओवरराइट करते हैं।

+0

कर सके यू कृपया मुझे बताओ अशक्त जोड़ने क्या के रूप में एक महत्वपूर्ण मुझे लाभ होगा। –

+0

मुझे लगता है कि @ बाबन शिकाारी के पास उनके जवाब में एक उदाहरण है।मैं अभी अपने लिए नहीं आ सकता हूं, लेकिन मुझे इसकी आवश्यकता के बजाय नल-कुंजी का उपयोग करने का विकल्प पसंद है, लेकिन इसका उपयोग करने में असमर्थ होना: पी – ZeissS

4

इस के लिए एक API कॉल नहीं है:

size: इस नक्शे में मुख्य मान मैपिंग की संख्या देता है।

hmap.size(); 

जैसा कि आपने नोट किया है कि आप एक नए मूल्य के साथ कुंजी/मूल्य जोड़ी को ओवरराइट कर रहे हैं।

+0

gr8 मुझे यह नहीं पता था। अच्छा जवाब के लिए धन्यवाद। –

0

प्रश्न हैश मैप में एकाधिक कुंजी रखने के बारे में पूछा गया है जो संभव नहीं है।

यदि आप बार-बार शून्य पास करते हैं तो पुराना मान केवल तभी बदला जाता है।

देखें:

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/HashMap.java#HashMap.putForNullKey%28java.lang.Object%29

संबंधित मुद्दे

 संबंधित मुद्दे