在java中从hashmap的arraylist中检索值?
我有一个如下所示的hashmap在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
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的所有整数值。谢谢您的解释,我理解得更好。