【发布时间】:2014-02-08 12:59:41
【问题描述】:
我将LinkedHashMap<String, LinkedHashMap<Date, Double>> 包装到一个列表中;
List<LinkedHashMap<String, LinkedHashMap<Date, Double>>> list = new ArrayList(mainCodesMap.entrySet());
mainCodeMap 是 Map<String, Map<Date, Double>> 的类型
问题是列表没有问题,但是,当我尝试在 for 循环中按索引获取列表元素时;
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 throws ClassCastException 上面写着;
java.lang.ClassCastException: java.util.LinkedHashMap$Entry cannot be cast to java.util.LinkedHashMap
【问题讨论】:
-
我想我对某些事情感到困惑,因为我认为列表的每个元素也是
LinkedHashMap<String, LinkedHashMap<Date, Double>> -
values 会返回一个 LinkedHashMap 的集合,而不是一个。
-
entryRow.values()返回Collection<LinkedHashMap<...>>,而不是LinkedHashMap... -
好的,非常感谢我解决了这个问题。 :) 如果你们中的一个人可以写下你的答案,我会接受它
标签: java list map classcastexception linkedhashmap