मेरे पास नक्शा है: TreeMap<String, Integer> m = new TreeMap<>();
जहां मेरे पास एक संपूर्ण वर्णमाला और मूल्य है, जो दिखाता है कि मेरे पाठ में प्रत्येक पत्र कितनी बार पाया गया था।ट्रीमैप <स्ट्रिंग, इंटीजर> को कैसे हल करें?
मैं उस मानचित्र को अवरोही गिनती क्रम में सॉर्ट करना चाहता हूं; यही है, सबसे लगातार पत्र पहली पंक्ति पर है, और आउटपुट की आखिरी पंक्ति कम से कम लगातार पत्र इंगित करती है। यदि दो अक्षरों में समान आवृत्ति है, तो अक्षर जो पहले वर्णमाला में आता है, पहले दिखाई देना चाहिए। इसे कैसे बनाया जाए?
मैं तुलनाकारी साथ करने की कोशिश की:
public int compare(String a, String b) {
if (base.get(a) >= base.get(b) && a.compareToIgnoreCase(b) < 0) {
return -1;
} else {
return 1;
}
}
लेकिन अभी भी, इसकी नहीं यह, उत्पादन होता है:
D 3
E 3
A 2
S 5
दोस्तों ... इस मिले से पहले, इस फ्लॉप मदद बिल्कुल। अच्छा उत्पादन किया जाना चाहिए: -: प्राकृतिक तरह आम में कुछ भी नहीं है के रूप में अपने छँटाई इच्छा के साथ
public int compare(String a, String b) {
if (base.get(a) > base.get(b)) {
return -1;
} else if (base.get(a) < base.get(b)) {
return 1;
} else {
int stringCompare = a.compareToIgnoreCase(b);
return stringCompare == 0 ? 1 : stringCompare; // returning 0 would merge keys
}
}
सटीक डुप्लिकेट http://stackoverflow.com/questions/3074154/sorting-a-hashmap-based-on-value-then-key – JohnJohnGa
एक और डुप्लिकेट http://stackoverflow.com/questions/1448369/how-to-sort- ए-ट्रेमैप-ऑन-ऑन-वैल्यू – mellamokb
@ जॉन जोहानगा: नहीं। मेरा सवाल थोड़ा अलग है। मेरा संपादन देखें – Katie