Hy jeder, Ich habe die Aufgabe, Java-Map in absteigender Reihenfolge der verschachtelten Array-Größe/Länge zu sortieren, aber das verschachtelte Array ist in verschachtelten Map. Die Struktur sieht so aus:Sortieren nach verschachtelten Array-Größe in verschachtelten Karte
HashMap<String, HashMap<String, ArrayList<String>>> classes = new HashMap<>();
I Lambda verwenden und ich versuchte, viele Varianten, einschließlich:
classes.entrySet().stream()
.sorted((k1, k2) -> Long.compare(classes.get(k2.getKey()).entrySet().stream().count(), classes.get(k1.getKey()).entrySet().stream().count()))
und
classes.entrySet().stream()
.sorted((k1, k2) -> Integer.compare(k2.getValue().values().size(), k1.getValue().values().size()))
aber ohne Erfolg. Aufgrund der Art der Daten kann ich keine andere Datenstruktur verwenden, ich muss bei dieser bleiben.
Irgendwelche Ideen, warum meine Sortierung fehlschlägt? Danke für jede Hilfe, ich weiß es zu schätzen.
In welchem Sinne ist es nicht die Art? –
Die Sortierung gibt die Größe der verschachtelten Map anstelle der Array-Größe in der verschachtelten Map zurück. –
Es gibt mehrere Arrays, die einem Schlüssel in der 'class's-Map zugeordnet sind.Sie müssen die Längenwerte aggregieren. Nach Durchschnitt, Summe, Median sortieren? Ihre Beispiele scheinen nach der Größe der Map zu sortieren, nicht nach der Größe der enthaltenen Arrays. – GuiSim