コードを書くときは、リストか配列か、大体どちらかに寄せるとは思います。
ですが、どうしてもこの場合だけは、こっちが良い(必要)・・・ときがあります。
いちいち、forループで回して、せっせと値をコピーするのは面倒です。
便利メソッドがAPIに用意されているので、これを使うと簡単にリストと配列を変換することができます。
リストから配列に変換するサンプル
List#toArray(T[])を使って、リストから配列に変換します。
T[]には、変換先の配列型を指定します。サイズは0(new String[0])でも何でも構いません。
T[]に、リストのサイズを指定すると、新しくインスタンスを生成することがないため、速度が改善できるので、なるべく指定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import java.util.ArrayList; import java.util.List; public class ListToArrayTest { public static void main(String[] args) { List list = new ArrayList(); list.add("メロン"); list.add("すいか"); list.add("リンゴ"); list.add("バナナ"); //リストからString配列へ String[] strArray = list.toArray(new String[list.size()]); for(String str : strArray) { System.out.println(str); } } } |
実行結果
1 2 3 4 | メロン すいか リンゴ バナナ |
配列からリストに変換するサンプル
Arrays#asList(T[])を使って、リストから配列に変換します。
リストから配列に変換したサンプルとほぼ同じですね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import java.util.Arrays; import java.util.List; public class ArrayToListTest { public static void main(String[] args) { String[] strArray = new String[]{ "メロン", "すいか", "リンゴ", "バナナ" }; //String配列からリストへ List list = Arrays.asList(strArray); for(String str : list) { System.out.println(str); } } } |
実行結果
1 2 3 4 | メロン すいか リンゴ バナナ |