Sortieren, Anzeigen<Key, Value> durch Werte

Ich bin relativ neu in Java, und oft feststellen, dass ich brauche zu Sortieren Map<Key, Value> auf die Werte.

Da die Werte nicht eindeutig sind, finde ich mich mit der Konvertierung der keySet in eine array, und Sortieren das array durch array Sortieren mit einem benutzerdefinierte Komparator -, dass Arten, die auf der dem Schlüssel zugeordnete Wert.

Gibt es einen einfacheren Weg?

Eine Karte soll nicht sortiert werden, aber schnell zugegriffen. Objekt gleichen Werte teilen, die der Einschränkung der Karte. Verwenden Sie den Eintrag gesetzt, wie List<Map.Entry<...>> list =new LinkedList(map.entrySet()) und Collections.sort .... es so.
Ein Fall, wo dies auftreten könnte, wenn wir versuchen, die Verwendung eines Zählers in Java (Map<Object, Integer>). Sortierung nach Anzahl der Fundstellen werden dann einen gemeinsamen Betrieb. Eine Sprache wie Python hat eine eingebaute Zähler-Daten-Struktur. Für eine Alternative Art der Implementierung in Java, hier ist ein Beispiel
Es gibt viele Anwendungsfälle für sortierte Karten, das ist, warum Sie haben TreeMap und ConcurrentSkipListMap im jdk.

InformationsquelleAutor |

Schreibe einen Kommentar