-1

以下に示すようなハッシュマップがあります。

indexMap = new HashMap<String, ArrayList<Integer>>();

このように文字列から値を収集できます。

        String[] keysProblem2 = (String[]) indexMap.keySet().toArray(new String[0]);  

arraylist から値を収集する方法は? こんな感じにしてみたのですが、

        Integer [] valuesProblem2 =  (Integer[]) indexMap.values().toArray(new Integer[indexMap.size()]);

このようなエラーが発生しましたが、

 java.lang.ArrayStoreException: java.lang.String
at java.util.AbstractCollection.toArray(Unknown Source)
4

1 に答える 1

1

indexMap.values()Collections の aを返しますArrayList<Integer>。sではなくの.toArray(new Integer[indexMap.size()])コレクションであるため、呼び出すことはできません。ArrayList<Integer>Integer

すべての ArrayLists を反復処理して 1 つの大きな ArrayLists を作成するInteger[]場合は、次のようにする必要があります。

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]);
于 2012-09-21T05:46:13.453 に答える