我有以下LinkedHashMap声明 .
LinkedHashMap<String, ArrayList<String>> test1
我的观点是如何迭代这个哈希映射 . 我想这样做,为每个键获取相应的arraylist并逐个打印arraylist的值 .
我试过这个,但只得到返回字符串,
String key = iterator.next().toString();
ArrayList<String> value = (ArrayList<String> )test1.get(key)
5 回答
顺便说一下,您应该将变量声明为接口类型,例如
Map<String, List<String>>
.我假设你的get语句中有一个拼写错误,它应该是test1.get(key) . 如果是这样,我不确定它为什么不返回一个ArrayList,除非你没有在 Map 中输入正确的类型 .
这应该工作:
或者你可以使用
在声明变量时(以及在通用参数中),您应该使用接口名称,除非您有一个非常具体的原因来定义使用该实现 .
您可以使用条目集并遍历条目,这些条目允许您直接访问密钥和值 .
你为什么这么认为?方法get返回选择了泛型类型参数的类型
E
,在您的情况下为ArrayList<String>
.在Java 8中: