2016-07-06 28 views
-2

So habe ich eine , die Schlüssel als Float[] Array und Werte wie LinkedList<LinkedList> (verschachtelte Listen) hat. Für jeden Schlüssel versuche ich, die Werte nach numerischer Reihenfolge zu sortieren, die durch den Vergleich eines Gleitkommawerts innerhalb dieser verschachtelten Liste erhalten wird. Im Detail:Java HashMap Sortierung mit benutzerdefinierten Lambda-Komparator

// copy of an original hashmap 
LinkedHashMap<Float[], LinkedList<LinkedList>> tempMap = new LinkedHashMap<>(attrMap); 

Dann wird der Vergleicher:

// i is index of numeric (float) value I want to sort with 
Comparator<LinkedList> comp = (a, b)-> ((Float) a.get(i)).compareTo((Float) b.get(i)); 
tempMap.get(keyObj).sort(comp); 

dieser Art nicht die Karte. Wie könnte ich es reparieren?

EDIT2: Da es den eigentlichen Code zu replizieren, hier ist mein Quellcode auf github link heikel ist. Das Code-Snippet befindet sich in der Analyzer-Klasse unter der Methode biConvert().

+0

Können Sie [Bearbeiten] Ihre Frage ein und senden Sie kurze, aber vollständiges Beispiel, das wir in unseren Maschinen copy-paste könnten und Ihr Problem zu reproduzieren (möglicherweise durch ein solches Beispiel auch die Schaffung dir Ursache für Ihr Problem finden). – Pshemo

+0

Ihr Beispiel kompiliert nicht, zum Beispiel auf 'l.append (..)'. Bitte versuchen Sie Code zu schreiben, der keine Fehler verursacht, die nicht mit Ihrem Problem zusammenhängen. – Pshemo

+0

Sorry, aber der Link kann nicht nur Quellcode sein, was nicht funktioniert, besonders wenn Sie später den verlinkten Code korrigieren wollen, der Ihre Frage ungültig macht. Zweck von Stack Overflow ist es, durchsuchbares Repository für zukünftige Benutzer zu sein. Wenn also Ihre Frage nicht genügend Informationen enthält, um Ihr Problem in sich selbst zu reproduzieren, dann befürchte ich, dass es sich hier nicht um ein Thema handelt. – Pshemo

Antwort

0

Ordnen Sie das Sortierergebnis auf die gleiche Karte

+0

Von dem, was ich 'List.Sort (Komparator) erinnern' nicht wieder neue Liste, aber umlagert, auf dem wir diese Methode aufgerufen wird, so ändert sich von überall sichtbar sein soll, wo diese Liste (einschließlich Karte verwendet wird, die bereits diese Liste hält). – Pshemo

+0

Entschuldigung, könnten Sie mir erklären, was Sie sortieren möchten? Floats oder Listen? –

+0

Ich bin nicht der Autor dieser Frage (so Sie diesen Kommentar in Frage stellen, anstatt Ihre Antwort müssen, wenn Sie Autor möchte darüber informiert werden), aber von dem, was ich OP (siehe Original-Poster) möchten Liste sortieren die enthält eine andere Liste (die wahrscheinlich Gleitkommazahlen enthält). Ich sehe solche Liste wie Tabelle, wo erste Liste Zeilen enthält, und zweite Werte für Spalten und OP möchte Zeilen basierend auf ausgewählten Spalte sortieren. – Pshemo