4 Stimmen

Wie man die obersten 10 Schlüssel in absteigender Reihenfolge ihrer Werte für die Map<String, Integer> erhält

map.put("Tom",5);
map.put("Tim",2);
map.put("Ted",4);

Und dann könnte ich es so übertragen:

Tom ist 5
Ted ist 4
Tim ist 2

Wie kann ich das machen? Ich bin Anfänger im Programmieren, bitte bestrafe mich nicht so hart.

10voto

arshajii Punkte 125945

Sie können etwas Ähnliches wie folgt versuchen:

List> l = new ArrayList<>(map.entrySet());

Collections.sort(l, new Comparator>() {
    @Override
    public int compare(Entry a, Entry b) {
        return b.getValue().compareTo(a.getValue());  // umgekehrte Reihenfolge
    }
});

for (int i = 0; i < 10; i++) {
    Entry e = l.get(i);
    System.out.println(e.getKey() + " ist " + e.getValue());
}

Referenz:

0voto

Mauren Punkte 1925

Sie können ein TreeMap verwenden und einen Comparator im Konstruktor übergeben, der Ihre Einträge in der gewünschten Reihenfolge hält, dann einfach über Ihrem entrySet iterieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X