2011-09-15 8 views
0

私はjavaで作業しています。
私はArrayList<foo> myListを持っており、それを配列に変換しようとしています。ArrayリストのJava動的行列

エラーが発生しました。オブジェクトはfooにキャストできません。

どのようなソリューションですか?私はいくつかの並べ替えを適用する必要があるので、ArrayListで十分ではない動的割り当てられた行列を使用しようとしています。

答えて

3
Foo[] myArray = myList.toArray(new Foo[myList.size()]); 
+0

'myList.toArrayは(新しいはFoo [0])'それは十分である。もちろん –

+0

十分です。しかし、空の配列が作成され、それが適合しないとテストされ、適合する別の配列が作成されます。この空の配列はどうですか?パフォーマンスに重大な影響を与えない場所でのコード量を削減するには? –

1

私はあなたが、多くの場合、2次元配列を意味するために使用されるが、その脇に置いている行列、によって何を意味するのか分からない:あなたはこのようなtoArray()を呼び出す場合、引数なしで、返された配列はFoo[]ではなく、Object[]にはFooオブジェクトが含まれます。

Foo[] myArray = myList.toArray(new Foo[myList.size()]); 
+0

行列では、私はベクトルを意味した、申し訳ありません –

1
Foo[] myArray = (Foo[])myList.toArray(new Foo[myList.size()]); 
+1

あなたはキャストする必要はありません – epoch

1

私はこれが役立つかもしれない願っています:あなたはこのように、あなたがあなた自身の配列オブジェクトを供給することができます1をtoArray()の他のバージョンを使用する必要があります。

import java.util.ArrayList; 

パブリッククラスメイン{

public static void main(String[] args) { 

    // TODO Auto-generated method stub 
    ArrayList<String> myList = new ArrayList<String>(); 
    String s="hello"; 
    String r="world"; 
    myList.add(s); 
    myList.add(r); 
    String[] newList = myList.toArray(new String[0]); 
    System.out.println(newList[0]+" "+newList[1]); 

} 

}