問題ありません
あなたのコードを使用すると、期待通りに実際にあなたとして、ない1を4を返しありません述べました。
コードをそのまま使用して、追加のprintln
を追加し、もう一方をprintln
に変更しました。
int size = 4;
ArrayList<String> testArr = new ArrayList<String>();
String[] test = null;
for (int i = 0 ; i < size ; i ++) {
testArr.add ("test");
test = testArr.toArray (new String[ 0 ]);
System.out.println ("i: " + i + " | test: " + Arrays.toString (test));
}
System.out.println ("test.length: " + test.length);
I:0 |テスト:[テスト]
i:1 |テスト:[テスト、テスト]
i:2 |テスト:[テスト、テスト、テスト]
i:3 |テスト:[テスト、テスト、テスト、テスト]
test.length:4
このコマンドの動作を理解するために、クラスのドキュメントを必ずお読みください:
ArrayList::toArray(array)
このリスト内のすべての要素を適切な順序(最初の要素から最後の要素まで)で含む配列を返します。返される配列の実行時の型は、指定された配列の実行時の型です。リストが指定された配列に収まる場合は、リストに戻ります。そうでない場合は、指定された配列の実行時の型とこのリストのサイズで、新しい配列が割り当てられます。
リストが指定された配列に余裕をもたせている場合(つまり、配列にリストよりも多くの要素がある場合)、配列の末尾の要素はnullに設定されます。
このコードは実際には4を出力します。 – Eran
使用しているJavaのバージョンは何ですか?これは、 –
私は何が間違っているのか分かりませんが、なぜarraylistを配列に変換しますか?arraylistにはsize()メソッドもあります... – Lucurious