1. ホーム
  2. java

[解決済み] Javaで配列をリストに変換する

2022-03-18 09:48:27

質問

Javaで配列をリストに変換するには?

を使いました。 Arrays.asList() が、なぜかJava SEから動作(とシグネチャ)が変わっている。 1.4.2 (ドキュメントは現在アーカイブにあります) から 8 で、ウェブ上で見つけたほとんどのスニペットは1.4.2の挙動を使用しています。

例えば

int[] spam = new int[] { 1, 2, 3 };
Arrays.asList(spam)

  • 1.4.2 では、1, 2, 3 の要素を含むリストを返します。
  • 1.5.0+ では、配列 spam を含むリストを返します。

多くの場合、簡単に検出できるはずですが、気づかないうちにすり抜けてしまうこともあります。

Assert.assertTrue(Arrays.asList(spam).indexOf(4) == -1);

解決方法は?

この例では、プリミティブ型のListは持てないからです。言い換えれば List<int> は不可能です。

ただし List<Integer> を使用しています。 Integer をラップするクラスです。 int プリミティブを使用します。配列を List を使って Arrays.asList ユーティリティ方式を採用。

Integer[] spam = new Integer[] { 1, 2, 3 };
List<Integer> list = Arrays.asList(spam);

こちらをご覧ください IdeOne.comで実行されているコード .