Listから配列への変換,配列からListへの変換
for文で繰返さなくてもjava.util.Collection.toArray(Object[])メソッドを使えばListから配列へ一気に変換することができる.ちなみにtoArrayの引数は変換先の配列の一つ目のデータである.引数のないtoArray()メソッドを使うとClassCastExceptionが発生する.
import java.util.List;
import java.util.ArrayList;
public class Sam{
public static void main(String[] args){
List list=new ArrayList();
list.add(new String("foo"));
list.add(new String("bar"));
list.add(new String("baz"));
String[] array=(String[])list.toArray(new String[0]);
//cf. http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/Collection.html#toArray(java.lang.Object[])
System.out.println("list: "+list);
System.out.println("array: "+array[0]+" "+array[1]+" "+array[2]);
}
}
実行結果
bash-2.05b$ java Sam
list: [foo, bar, baz]
array: foo bar baz
逆に,配列からListへ変換する場合はjava.util.Arrays.asList(Object[])を使用する.asListはクラスメソッドなので,インスタンスを生成しなくても使用可能である.
import java.util.List;
import java.util.Arrays;
public class Sam{
public static void main(String[] args){
String[] array={"foo","bar","baz"};
List list=Arrays.asList(array);
//cf. http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/Arrays.html#asList(java.lang.Object[])
System.out.println("list: "+list);
System.out.println("array: "+array[0]+" "+array[1]+" "+array[2]);
}
}
実行結果
bash-2.05b$ java Sam
list: [foo, bar, baz]
array: foo bar baz