में कनवर्ट करने की आवश्यकता क्यों है जब मैं TreeMap का उपयोग करता हूं तो मुझे एक समस्या आई।इंटीजर से int
Map<Integer, Integer> a = new TreeMap<Integer, Integer>();
a.put(5,1);
a.put(3,2);
a.put(4,3);
int target = 7;
System.out.println(target - a.get(5)); //line 6
for(Map.Entry b : a.entrySet()){
System.out.println(target - b.getValue()); //line 8
}
उपरोक्त कोड ने मुझे एक संकलन त्रुटि दी। हालांकि, जब मैं लाइन 8 को इस पर बदलता हूं:
Map<Integer, Integer> a = new TreeMap<Integer, Integer>();
a.put(5,1);
a.put(3,2);
a.put(4,3);
int target = 7;
System.out.println(target - a.get(5)); //line 6
for(Map.Entry b : a.entrySet()){
System.out.println(target - (int) b.getValue()); //line 8
}
फिर यह काम करता है। क्या कोई मुझे कुछ विचार दे सकता है क्यों मुझे लाइन 6 में किसी भी बदलाव की आवश्यकता नहीं है, लेकिन लाइन 8 में इंटीजर को int में बदलने की आवश्यकता है?
ओह !!! बहुत बहुत धन्यवाद! – youngyjd
क्या आपको वहां टाइप को परिभाषित करने की आवश्यकता है या हीरा ऑपरेटर (Map.Entry <>) पर्याप्त होगा (जिसे जावा 7 के साथ पेश किया गया था) as.entrySet() पहले से ही प्रकार को परिभाषित करता है? ओपी में बिल्कुल कुछ भी नहीं उपयोग करने से त्रुटि का कारण बनता है। – Thomas
@ थॉमस - आपको इस प्रकार को परिभाषित करने की आवश्यकता है। केवल हीरा ऑपरेटर का उपयोग करने से आपको संकलन-समय त्रुटि मिल जाएगी। –