配列を引数としてメソッドに渡すtoArray
と、リストの項目が取り込まれ、それ以外の場合は の配列が返されますObject
。リストより大きいサイズの配列を引数として渡して、より大きなサイズの配列を取得できます。次の例で説明します。
public static void main(String[] args) throws FileNotFoundException {
List<String> list = new ArrayList<>();
list.add("One");
System.out.println("list Size: " + list.size());
//If we pass an array as argument it will be filled with items from list and then returned. Here array size is (list.size +2 )
String[] stringArray = list.toArray(new String[2]);
System.out.println("stringArray Size: " + stringArray.length);
//If we do not pass an array as argument we get Object[] of same size
Object[] objects = list.toArray();
System.out.println("objects Size: " + objects.length);
// Java 8 has option of streams to get same size array
String[] stringArrayUsingStream = list.stream().toArray(String[]::new);
System.out.println("stringArrayUsingStream Size: " + stringArrayUsingStream.length);
}
上記のように、Java 8 でもストリームを使用するオプションがあります。出力は次のとおりです。
list Size: 1
stringArray Size: 2
objects Size: 1
stringArrayUsingStream Size: 1