ArrayListを配列に変換する - ArrayListクラス - 萌えJava超入門
ArrayListクラス

ArrayListを配列に変換する

ArrayListを配列に変換します。

public <T> T[] toArray(T[] a)

萌えJava超入門
toArray はジェネリックメソッドなので、
少し見た目が変わっているが
皆さんジェネリクスを指定しないで使っている。
気にしないで大丈夫だ。
目次

1. toArrayメソッド


ArrayListを配列に変換するには、ArrayListの toArrayメソッドを使用します。
引数に、自身と同じサイズ、同じクラスの配列を渡すと、
引数に与えた配列に要素を代入します。
この自身と同じ要素を持つ引数の配列(のメモリアドレス)が、戻り値として得られます。

 public <T> T[] toArray(T[] a)

toArrayメソッド 書式
ArrayList<T> arraylist;
T[] a;
   T[] tArray = arraylist.<T>toArray(a);

萌えJava超入門
引数に直接
配列の初期化式を書くのが一般的だ。
結局戻り値を変数(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 **
赤井 持国
百瀬 日向
青木 柏手
緑川 出雲


萌えJava超入門
やはりキレンジャーは
返ってこなかったか...。
萌えJava超入門
萌えJava超入門
これゴレンジャーじゃ
ありませんよ?

ArrayList# と異なるの要素数の配列を引数に与えると、
内部的に要素数が一致する配列を再生成するため非効率です。
ArrayList# と要素数の同じ配列を与えましょう。




お疲れ様でした。




© 2019 awasekagami