1. ホーム

[解決済み】arrayList.toArray()でより具体的な型を返すようにする。

2022-04-09 16:36:28

質問

では、通常 ArrayList.toArray() の型を返します。 Object[] ......しかし、それはおそらく Arraylist オブジェクトの Custom を作るにはどうしたらいいのでしょうか? toArray() の型を返すようにする。 Custom[] ではなく Object[] ?

解決方法は?

このように。

List<String> list = new ArrayList<String>();

String[] a = list.toArray(new String[0]);

Java6以前は、書くことが推奨されていました。

String[] a = list.toArray(new String[list.size()]);

というのも、内部実装では適切なサイズの配列を再割り当てしてしまうので、前もってやっておいた方が良いからです。Java6以降では、空の配列が好まれます。 .toArray(new MyClass[0]) or .toArray(new MyClass[myList.size()])?

リストが適切に型付けされていない場合、toArray を呼び出す前にキャストを行う必要があります。このように。

    List l = new ArrayList<String>();

    String[] a = ((List<String>)l).toArray(new String[l.size()]);