在java中从hashmap的arraylist中检索值?

在java中从hashmap的arraylist中检索值?,java,map,hashmap,Java,Map,Hashmap,我有一个如下所示的hashmap indexMap = new HashMap<String, ArrayList<Integer>>(); 如何从arraylist收集值?我试着这样做 Integer [] valuesProblem2 = (Integer[]) indexMap.values().toArray(new Integer[indexMap.size()]); java.lang.ArrayStoreException: java

我有一个如下所示的hashmap

indexMap = new HashMap<String, ArrayList<Integer>>();
如何从arraylist收集值?我试着这样做

        Integer [] valuesProblem2 =  (Integer[]) indexMap.values().toArray(new Integer[indexMap.size()]);
 java.lang.ArrayStoreException: java.lang.String
at java.util.AbstractCollection.toArray(Unknown Source)
但是被给了一个这样的错误

        Integer [] valuesProblem2 =  (Integer[]) indexMap.values().toArray(new Integer[indexMap.size()]);
 java.lang.ArrayStoreException: java.lang.String
at java.util.AbstractCollection.toArray(Unknown Source)
indexMap.values()
返回
数组列表的
集合。不能调用
.toArray(新整数[indexMap.size()])
,因为它是
数组列表
的集合,而不是
整数
的集合

如果要遍历所有ArrayList,并创建一个大的
整数[]
,则必须执行以下操作:

ArrayList<ArrayList<Integer>> arrays = new ArrayList<ArrayList<Integer>>(indexMap.values());
ArrayList<Integer> allInts = new ArrayList<Integer>();
for(ArrayList<Integer> ints : arrays) {
   allInts.addAll(ints);
}
Integer[] valuesProblem2 = (Integer[])allInts.toArray(new Integer[0]);
arraylistarrays=newarraylist(indexMap.values());
ArrayList allInts=新的ArrayList();
对于(ArrayList ints:arrays){
allInts.addAll(ints);
}
整数[]值问题2=(整数[])allits.toArray(新整数[0]);

您是想收集HashMap中每个ArrayList中的所有整数值,还是只是想收集与单个键相关的整数值?@vulcan我想收集HashMap中ArrayList的所有整数值。谢谢您的解释,我理解得更好。