LinkedHashMap$Eintrag kann nicht gewirkt werden, um java.util.LinkedHashMap
Ich bin eingewickelt LinkedHashMap<String, LinkedHashMap<Date, Double>>
in einer Liste mit;
List<LinkedHashMap<String, LinkedHashMap<Date, Double>>> list = new ArrayList(mainCodesMap.entrySet());
die mainCodeMap
ist der Typ von Map<String, Map<Date, Double>>
die Sache ist, es ist kein problem mit der Liste,wenn ich jedoch versuchen, um die Elemente der Liste durch den index in einer for-Schleife wie;
for (int i = 0; i < correMatrix.length; i++) {
LinkedHashMap<String, LinkedHashMap<Date, Double>> entryRow = list.get(i);
LinkedHashMap<Date, Double> entryRowData = (LinkedHashMap<Date, Double>) entryRow.values();
..
..
}
jvm wirft ClassCastException
was sagt;
java.lang.ClassCastException: java.util.LinkedHashMap$Entry cannot be cast to java.util.LinkedHashMap
Ich denke, ich bin immer verwirrt über etwas,denn ich dachte, dass jedes element der Liste ist auch
Werte zurück, die Sie eine Sammlung von LinkedHashMap, nicht ein einziger.
ok Jungs, vielen Dank, ich habe das Problem gelöst. : ) Wenn einer von Euch schreiben könnte deine Antwort ich werde es akzeptieren
LinkedHashMap<String, LinkedHashMap<Date, Double>>
Werte zurück, die Sie eine Sammlung von LinkedHashMap, nicht ein einziger.
entryRow.values()
gibt eine Collection<LinkedHashMap<...>>
, nicht ein LinkedHashMap
...ok Jungs, vielen Dank, ich habe das Problem gelöst. : ) Wenn einer von Euch schreiben könnte deine Antwort ich werde es akzeptieren
InformationsquelleAutor quartaela | 2014-01-19
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
mainCodesMap.entrySet
gibt eineSet<Map.Entry<...>>
(nicht wörtlich...
). Erstellen Sie dann eineArrayList
mit diesenMap.Entry
s. Weil Sie mit dem raw-TypArrayList
(stattArrayList<something>
) der compiler nicht abfangen kann dieses problem.Sieht es aus wie Sie tatsächlich gemeint ist:
Hinweis:
ArrayList<>
bedeutet, dass der compiler wird automatisch füllen Sie die <>. Es funktioniert nicht in allen Kontexten.List<Entry<String, LinkedHashMap<Date, Double>>> list = new ArrayList(mainCodesMap.entrySet());
, so habe ich nur Einträge in einer Liste, wie ich wollte. Aber was meinst du mit "Es funktioniert nicht in allen Kontexten". Hängt es ab Java-version ?. Und vielen Dank für Ihre Antwort sowiesoAFAIK funktioniert es nur mit
new
. Aber ich könnte falsch sein.InformationsquelleAutor immibis