मैं इस तरह एक hashmap है:जावा अपनी key.length द्वारा, तरह हैश नक्शा() में
HashMap<String,Integer> map = new HashMap<String,Integer>();
map.put("java",4);
map.put("go",2);
map.put("objective-c",11);
map.put("c#",2);
अब मैं, उसके प्रमुख लंबाई से इस नक्शे को सॉर्ट करने अगर दो कुंजी लंबाई बराबर हैं चाहते हैं (उदाहरण के लिए जाओ और सी # दोनों लंबाई 2), फिर अल्फा आदेश द्वारा क्रमबद्ध। तो परिणाम मैं प्राप्त करने की उम्मीद है कुछ की तरह:
मुद्रित परिणाम: उद्देश्य-सी, 11 जावा, 4 सी #, 2 जाना, 2
यहाँ मेरे अपने attamp है, लेकिन यह does not बिल्कुल काम ...
HashMap<String,Integer> map = new HashMap<String,Integer>();
map.put("java",4);
map.put("go",2);
map.put("objective-c",11);
map.put("c#",2);
Map<String,Integer> treeMap = new TreeMap<String, Integer>(
new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.length().compareTo(s2.length());
}
}
);
वास्तव में 'compareTo' विधि (नहीं संकलन करने में सक्षम हो) लाल के रूप में प्रकट .... कोई कुछ कोड उदाहरण के साथ मेरी मदद कृपया ... मैं थोड़ा भ्रमित कर रहा हूँ कॉम्पा को अनुकूलित करने के लिए तुलनित्र वर्ग का उपयोग कैसे करें ऑब्जेक्ट ...
जब आप अपने कोड चलाने के लिए, परिणाम {C# = 2, जावा = 4, उद्देश्य-सी = 11} है। प्रश्न यह है कि "जाओ", 2 कहां है? –
इस तथ्य के कारण कि ट्रीमैप तुलनाकर्ता का उपयोग कर रहा है और तुलनित्र को समान लंबाई के 2 तारों के इलाज के लिए परिभाषित किया गया है। चूंकि ओपी ट्रीमैप के साथ खेल रहा था इसलिए मैंने केवल तुलनात्मक भाग को सही करने के लिए अपना उत्तर बढ़ाया। – sol4me
ओह शांत मेरे उत्तर के बारे में आप क्या सोचते हैं? चूंकि सेशन ने उल्लेख नहीं किया था कि ट्रेमैप का उपयोग करना अनिवार्य है, मैंने एक और शैली –