0

質問をうまく詳しく説明していないことをお許しください。以下の例で、私が何を意味するのかがわかると思います。ハッシュマップからanObjectのすべての値を取得する必要があります。以下の例からわかるように、キーはanObjectになり、値はanObjectの配列になります。

HashMap<anObject,anObject[]> testMap = new HashMap<anObject,anObject[]>(); //Define map

anObject someObject1 = new anObject("one");
anObject someObject2 = new anObject("two")

anObject[] manyObjects1 = new anObject[3];
manyObjects1[0] = new anObject(0);
manyObjects1[1] = new anObject(1);
manyObjects1[2] = new anObject(2);
anObject[] manyObjects2 = new anObject[3];
manyObjects2[0] = new anObject(0);
manyObjects2[1] = new anObject(1);
manyObjects2[2] = new anObject(2);

testMap.put(someObject1,manyObjects1);
testMap.put(someObject2,manyObjects2);

//Get anObject from all the values put into testMap
anObject[] getAllValues1 = (anObject[])testMap.values().toArray; //is this correct or
anObject[][] getAllValues2 = (anObject[][])testMap.values().toArray; //is this correct 
4

1 に答える 1

0

使用したいtoArray(T[])

Collection values = testMap.values();
anObject[][] getAllValues2 = (anObject[][])values.toArray(new anObject[values.size()][]);

マップ内の値の配列を取得しており、マップ内の値は配列であるため、配列の配列を取得していることを示す必要があるため、[][].

于 2012-05-20T13:36:13.327 に答える