首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LinkedHashMap$Entry不能转换为java.util.LinkedHashMap

LinkedHashMap$Entry不能转换为java.util.LinkedHashMap
EN

Stack Overflow用户
提问于 2014-01-19 18:41:10
回答 1查看 16.1K关注 0票数 5

我将LinkedHashMap<String, LinkedHashMap<Date, Double>>封装到一个列表中;

代码语言:javascript
复制
List<LinkedHashMap<String, LinkedHashMap<Date, Double>>> list = new ArrayList(mainCodesMap.entrySet());

哪种mainCodeMapMap<String, Map<Date, Double>>的类型

然而,当我尝试在for循环中按索引获取list的元素时,问题是list没有问题,比如;

代码语言:javascript
复制
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抛出ClassCastException,它说;

代码语言:javascript
复制
java.lang.ClassCastException: java.util.LinkedHashMap$Entry cannot be cast to java.util.LinkedHashMap
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-19 19:08:27

代码语言:javascript
复制
List<LinkedHashMap<String, LinkedHashMap<Date, Double>>> list = new ArrayList(mainCodesMap.entrySet());

mainCodesMap.entrySet返回一个Set<Map.Entry<...>> (而不是字面上的...)。然后创建一个包含这些Map.EntryArrayList,因为您使用的是原始类型ArrayList (而不是ArrayList<something>),所以编译器无法捕获这个问题。

看起来你真的是这个意思:

代码语言:javascript
复制
List<LinkedHashMap<String, LinkedHashMap<Date, Double>>> list = new ArrayList<>();
list.add(mainCodesMap)

注意:ArrayList<>表示编译器会自动填充<>。它并不是在所有的上下文中都能工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21215681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档