ホームページ > Java > &#&チュートリアル > Java の `Arrays.asList()` メソッドは Java SE 1.4.2 以降どのように変更されましたか?また、それを回避するにはどうすればよいですか?

Java の `Arrays.asList()` メソッドは Java SE 1.4.2 以降どのように変更されましたか?また、それを回避するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-12 18:39:11
オリジナル
485 人が閲覧しました

How Has Java's `Arrays.asList()` Method Changed Since Java SE 1.4.2, and How Can I Work Around It?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート