web-dev-qa-db-ja.com

String配列のすべてのアイテムをJavaのベクターに追加する方法は?

私のコードは次のようになります:

Vector<String> My_Vector=new Vector<String>();
String My_Array[]=new String[100];

for (int i=0;i<100;i++) My_Array[i]="Item_"+i;
......
My_Vector.addAll(My_Array);

しかし、私はエラーメッセージを受け取りました、各アイテムを追加するためにループすることなく、それを行う正しい方法は何ですか?

フランク

21
Frank

Vector.addAll()は、パラメーターのコレクションを受け取ります。配列をコレクションに変換するには、Arrays.asList()を使用できます。

My_Vector.addAll(Arrays.asList(My_Array));
20
Yannick Loriot
Collections.addAll(myVector, myArray);

これは、配列の内容をコレクション(ベクターなど)に追加する場合に推奨される方法です。

https://docs.Oracle.com/javase/8/docs/api/Java/util/Collections.html#addAll-Java.util.Collection-T...-

指定されたすべての要素を指定されたコレクションに追加します。追加する要素は個別に、または配列として指定できます。この便利なメソッドの動作はc.addAll(Arrays.asList(elements))の動作と同じですが、このメソッドはほとんどの実装で著しく高速に実行される可能性があります。

58
My_Vector.addAll(Arrays.asList(My_Array));

気づいたら、 Collection.addAllCollection引数を取ります。 Java配列はCollectionではありませんが、 Arrays.asListCollection.toArray を組み合わせて使用​​します=は、「配列ベースのAPIとコレクションベースのAPIの間の架け橋」です。

または、配列からCollectionに要素を追加するという特定の目的で、静的ヘルパーメソッド addAllCollectionsから使用することもできますクラス。

Collections.addAll(My_Vector, My_Array);
6