keySet () आपके हैशमैप से केवल कुंजी का एक सेट देता है, आपको इस कुंजी को सेट करना चाहिए और इन कुंजियों का उपयोग करके हैशमैप से मान प्राप्त करना चाहिए।
आपके उदाहरण में, हैशमैप की कुंजी है TypeKey, लेकिन आपने TypeValueअपने जेनेरिक फॉर-लूप में निर्दिष्ट किया है, इसलिए इसे संकलित नहीं किया जा सकता है। आपको इसे बदलना चाहिए:
for (TypeKey name: example.keySet()){
String key = name.toString();
String value = example.get(name).toString();
System.out.println(key + " " + value);
}
Java8 के लिए अपडेट करें:
example.entrySet().forEach(entry->{
System.out.println(entry.getKey() + " " + entry.getValue());
});
यदि आपको कुंजी मूल्य प्रिंट करने की आवश्यकता नहीं है और बस हैशमैप मूल्य की आवश्यकता है, तो आप दूसरों के सुझावों का उपयोग कर सकते हैं।
एक और सवाल: क्या यह संग्रह शून्य आधार है? मेरा मतलब है कि अगर इसकी 1 कुंजी है और क्या इसका आकार 0 या 1 होगा?
से लौटा हुआ संग्रह keySet()एक सेट है । आप एक इंडेक्स का उपयोग करके सेट से मान प्राप्त नहीं कर सकते हैं, इसलिए यह सवाल नहीं है कि यह शून्य-आधारित है या एक-आधारित है। यदि आपके हैशमैप में एक कुंजी है, तो कीसेट () में एक प्रविष्टि अंदर होगी, और उसका आकार 1 होगा।
Mapकीsize()विधि : "। रिटर्न इस नक्शे में मुख्य मान मैपिंग की संख्या नक्शे की तुलना में अधिक हैं, तोInteger.MAX_VALUEतत्वों, रिटर्नInteger.MAX_VALUE।"