Java での配列からリストへの変換: 1.4.2 以降の変更点を明らかにする
Java で配列をリストに変換するときに、次のような問題が発生した可能性があります。 Java SE 1.4.2 から 8 への Arrays.asList() メソッドの変更による予期せぬ動作。この記事これらの変更を詳しく調べ、バージョン間で一貫したリスト変換を保証するソリューションを提供します。
1.4.2 より前の動作: 配列からリストへの変換
Java SE 1.4 より前.2 では、Arrays.asList() メソッドが配列を可変リストに簡単に変換しました。たとえば、次のコード スニペットは、要素 1、2、3 を含むリストを作成します。
int[] numbers = new int[] { 1, 2, 3 }; List<Integer> list = Arrays.asList(numbers);
1.4.2 以降の動作: リストにラップされた配列
Java SE 1.5.0 以降、Arrays.asList() の動作が大幅に変更されました。配列をその要素のリストに変換する代わりに、単一の要素、つまり元の配列を含む変更不可能なラッパー リストを返すようになりました。この動作は、予期しない結果につながる可能性があるリストの変更を防ぐために導入されました。
その結果、前のコード スニペットは異なる動作をし、配列 'numbers':
int[] numbers = new int[] { 1, 2, 3 }; List<int[]> list = Arrays.asList(numbers); // Note: <> should be omitted
回避策: 配列をプリミティブのリストに変換するWrappers
配列の個々の要素を含む可変リストを取得するには、配列を対応するプリミティブ ラッパー クラスのリストに変換します。たとえば、Integer オブジェクトのリストを作成するには、次のコードを使用します。Integer[] numbers = new Integer[] { 1, 2, 3 }; List<Integer> list = Arrays.asList(numbers);
以上がJava の `Arrays.asList()` メソッドは Java SE 1.4.2 以降どのように変更されましたか?また、それを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。