ArrayListクラス
ArrayListを配列に変換する
ArrayListを配列に変換します。
public <T> T[] toArray(T[] a)
toArray はジェネリックメソッドなので、
少し見た目が変わっているが
皆さんジェネリクスを指定しないで使っている。
気にしないで大丈夫だ。
目次
1. toArrayメソッド
ArrayListを配列に変換するには、ArrayListの toArrayメソッドを使用します。
引数に、自身と同じサイズ、同じクラスの配列を渡すと、
引数に与えた配列に要素を代入します。
この自身と同じ要素を持つ引数の配列(のメモリアドレス)が、戻り値として得られます。
public <T> T[] toArray(T[] a)
引数に直接
配列の初期化式を書くのが一般的だ。
結局戻り値を変数(tArray)に代入するからな。
2. サンプルコード
//Sample08_01.java
import java.util.ArrayList;
class Sample08_01{
public static void main(String[] args){
ArrayList<String> list = new ArrayList<String>();
list.add("赤井 持国");
list.add("百瀬 日向");
list.add("青木 柏手");
list.add("緑川 出雲");
//list の表示
System.out.println("** List **");
for(int i=0; i<list.size(); i++){
System.out.println(list.get(i));
}
//配列に変換
String[] array = list.toArray(new String[list.size()]);
//array の表示
System.out.println("\n** array **");
for(int i=0; i<array.length; i++){
System.out.println(array[i]);
}
}
}
コマンドライン
>cd ws
ws>javac -encoding UTF-8 Sample08_01.java
ws>java Sample08_01
** List **
赤井 持国
百瀬 日向
青木 柏手
緑川 出雲
** array **
赤井 持国
百瀬 日向
青木 柏手
緑川 出雲
やはりキレンジャーは
返ってこなかったか...。
?
これゴレンジャーじゃ
ありませんよ?
ArrayList# と異なるの要素数の配列を引数に与えると、
内部的に要素数が一致する配列を再生成するため非効率です。
ArrayList# と要素数の同じ配列を与えましょう。
お疲れ様でした。