Also bin ich sehr neu in Java und als solche kämpfe ich mich durch eine Übung, indem ich eines meiner Python-Programme in Java umwandle.Java Wie man die Top 10 Elemente basierend auf dem Wert in einer HashMap zurückgibt
Ich habe in ein Problem laufen, wo ich das Verhalten zu wiederholen Ich versuche, aus Python im Folgenden nur die sortierten Schlüssel zurück (von Werten), die Werte:
popular_numbers = sorted(number_dict, key = number_dict.get, reverse = True)
In Java, ich habe Ich habe ein bisschen geforscht und noch keine einfache Probe für ein n00b wie mich oder eine vergleichbare Methode gefunden. Ich habe Beispiele gefunden, die Guava zum Sortieren verwenden, aber die Sortierung scheint eine nach Schlüsseln sortierte HashMap zu ergeben.
Zusätzlich zu den oben genannten, eine der anderen schönen Dinge über Python, die ich nicht in Java gefunden habe, ist die Fähigkeit, leicht eine Teilmenge der sortierten Werte zurückgeben. In Python kann ich folgende einfach tun:
print "Top 10 Numbers: %s" % popular_numbers[:10]
In diesem Beispiel number_dict ist ein Wörterbuch von Schlüssel-Wert-Paaren in dem Schlüssel für Zahlen 1..100 und der Wert ist die Anzahl der Male der Zahl (key) eintritt:
Top 10 Zahlen:
for n in numbers: if not n == '': number_dict[n] += 1
Das Endergebnis etwas sein würde, [ '27', '11', '5', '8', '16', '25 ',' 1 ',' 24 ',' 32 ', ' 20 ']
Um zu klären, in Java habe ich erfolgreich eine HashMap erstellt, habe ich erfolgreich Zahlen untersucht und die Werte des Schlüssel, Wert-Paares erhöht. Ich bin jetzt bei der Sortierung fest und gebe die obersten 10 Zahlen (Schlüssel) basierend auf Wert zurück.
Gibt es einen Grund, 'HashMap' zu verwenden, zumal Sie sortieren müssen? – Zong
Haben Sie darüber nachgedacht, eine Baumkarte anstelle einer Hash-Karte zu verwenden? – BlackHatSamurai
Mögliches Duplikat: http://stackoverflow.com/questions/780541/how-to-sort-hash-map, http://stackoverflow.com/questions/8119366/sorting-hashmap-by-values – BlackHatSamurai