3

次よりも配列をリストにコピーする1行の方法があるかどうか疑問に思っています:

String array[] = new String[]{"1", "2", "3", "4" } ;

List list = new ArrayList();

for (int i=0; i< array.length; i++){
    list.add(array[i] );
}

編集:両方の有益な回答に感謝します。非常に役立ちます:)

4

3 に答える 3

9

はい、1 つのライナーがあります。Arrays.asList(T...a)を使用して配列をリストに変換し、コレクションを受け取る ArrayList オーバーロードされたコンストラクターに引数として渡します。

List<String> list = new ArrayList<String>(Arrays.asList(array))
于 2013-03-07T21:49:19.710 に答える
6

リスト形式の配列が必要であるが、実際には配列を構造的に変更する必要がない場合は、次のことができますList<String> list = Arrays.asList(array);
それ以外の場合は、@PremGenError の回答が最適です。

于 2013-03-07T21:51:13.327 に答える
2

最も簡単な方法は次のとおりです。

List<String> fixedList = Arrays.asList(array);

ただし、これは指定された配列に基づく固定サイズのリストを返します。これは、リスト ( などlist.add("10"))を変更しようとするjava.lang.UnsupportedOperationExceptionと実行時にエラーが発生することを意味するので、注意してください。

固定サイズのリストに基づいて、変更可能なリストを作成できます。

List<String> modifiableList = new ArrayList<String>(fixedList);

次のように、両方の手順を 1 行のコードにまとめることができます。

List<String> list = new ArrayList<String>(Arrays.asList(array));
于 2013-03-07T22:21:36.077 に答える