Top-10-Werte in der hash-map
Ich versuche herauszufinden, wie bekomme ich die 10 höchsten Werte aus der HashMap
. Ich war zunächst versucht, die TreeMap
und haben es irgendwie von Wert-und dann nehmen Sie die ersten 10 Werte, aber es scheint, dass dies nicht die option, wie TreeMap
Arten von Schlüssel.
Möchte ich noch in der Lage sein zu wissen, welche Schlüssel haben die höchsten Werte, die K, V
von der Karte sind String, Integer
.
was meinst du die top 10 ? basierend auf was?
Können Sie bitte etwas code zu zeigen, welche Elemente, die Sie vergleichen?
TreeMap kann die Sortierung für Sie. Aber in Ordnung für uns, zu wissen, was Sie versuchen, zu Sortieren, indem Sie u, um uns zu sagen!
Ahh sorry verpasste es aus, die K -, V sind String,Integer. Ich muss noch wissen, welche Tasten haben die höchsten Werte.Ich habe versucht, TreeMap, aber es nur Art von Schlüssel, wie in der Spezifikation definiert.
stackoverflow.com/questions/109383/...
Können Sie bitte etwas code zu zeigen, welche Elemente, die Sie vergleichen?
TreeMap kann die Sortierung für Sie. Aber in Ordnung für uns, zu wissen, was Sie versuchen, zu Sortieren, indem Sie u, um uns zu sagen!
Ahh sorry verpasste es aus, die K -, V sind String,Integer. Ich muss noch wissen, welche Tasten haben die höchsten Werte.Ich habe versucht, TreeMap, aber es nur Art von Schlüssel, wie in der Spezifikation definiert.
stackoverflow.com/questions/109383/...
InformationsquelleAutor Tohmas | 2013-03-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht sollten Sie implementieren die
Comparable
Schnittstelle zu Ihrem Wert gespeicherten Objekte in der hashmap.Dann können Sie eine array-Liste aller Werte:
Hinsichtlich
Ich bin das hinzufügen es als eine weitere Antwort, weil es schlecht aussieht als Kommentar
InformationsquelleAutor sk2212
können Sie erklären mir die Komplexität dieser code? Dein code funktioniert perfekt und ist sehr leicht Ansatz, wollte nur zur Berechnung der Komplexität dieses Codes....
Sie code ist gut, aber wie stellen Sie sicher, dass die Größe der TreeMap ist 10 zu allen Zeiten? Weil Sie nur wollen, um TOP-TEN-richtig? Jedes mal, wenn Sie einfügen eines Schlüssel-Wert-paar in den Baum Karte, die Sie brauchen, um zu überprüfen, ob die aktuelle Größe größer als zehn, wenn es ist, müssen Sie zum löschen der kleinsten Schlüssel-Wert-paar in der TreeMap. Wie machst du dieses Letzte Teil im code? Ich glaube nicht, dass Menschen würde die Antwort auf meine Frage hier, also fragte ich eine neue Frage verweisen auf diesen post Here
InformationsquelleAutor Biswajit
Fürchte ich, müssen Sie zur Iteration über die gesamte Karte. Heap ist eine Häufig verwendete Datenstruktur für die Suche nach top-K-Elemente, wie in dieses Buch.
InformationsquelleAutor NPE
Wenn Sie versuchen, um die 10 höchsten Werte in der Karte (vorausgesetzt, die Werte numerisch sind oder zumindest die Umsetzung Vergleichbar), dann versuchen Sie dies:
Foo
implementiertComparable<Foo>
und Sie nicht verwenden die rohe Art der Liste.Ich würde den roh geben, wenn der OP angegeben, es in seiner Frage 🙂
InformationsquelleAutor aymeric
Angenommen, Sie haben eine Karte, aber in diesem Beispiel kann für jede Art von
InformationsquelleAutor Jirawat Uttayaya
Ich meine Antwort in den von sk2212
Zuerst müssen Sie implementieren eine absteigende Komparator:
Dann können Sie es in eine Methode, wie diese für das Attribut "hashmap":
InformationsquelleAutor Seba D'Agostino