Bir haritam var: TreeMap<String, Integer> m = new TreeMap<>();
Burada tam bir alfabeye ve değerlere sahibim. Bu, metnimde her harfin kaç defa bulunduğunu gösterir.Bir TreeMap nasıl ayrılır <String, Tamsayı>?
Bu haritayı azalan sayım sırasına göre sıralamak istiyorum; Yani, en sık görülen harf ilk satırdadır ve son çıktı satırı en az sık kullanılan harfi gösterir. İki harf aynı frekansa sahipse, önce alfabede ilk gelen harf önce görünmelidir. Nasıl yapmalı?
Ben karşılaştırıcı ile çalıştı:public int compare(String a, String b) {
if (base.get(a) >= base.get(b) && a.compareToIgnoreCase(b) < 0) {
return -1;
} else {
return 1;
}
}
ama yine de onun değil mi, çıkış geçerli:
D 3
E 3
A 2
S 5
Çocuklar ... hiç daha önce bu daha hiç Yardım buldum. İyi çıkış olmalıdır:
S 5
D 3
E 3
A 2
tam kopya http://stackoverflow.com/questions/3074154/sorting-a-hashmap-based-on-value-then-key – JohnJohnGa
başka bir kopya http://stackoverflow.com/questions/1448369/how-to-sort- a-treemap-based-on-kendi değerleri – mellamokb
@JohnJohnGa: hayır. Benim sorum biraz farklı. Benim çalışmamı gör – Katie