変更や外部ライブラリを使用せずに Java でリストを結合する
2 つのリストをマージする場合、多くの場合、リストのみを使用して元のリストを変更しないことが望ましいです。 JDK。ここでは、さまざまなアプローチの包括的な分析を示します:
元の方法:
質問で示されているように、新しいリストを作成し、両方の入力リストから要素をコピーして追加します。新しいリストに追加するのは簡単な方法です:
List<String> newList = new ArrayList<>(); newList.addAll(listOne); newList.addAll(listTwo);
JDK 1.3バージョン:
Java 1.3 との互換性のために、Iterator.addAll メソッドを使用できます:
List<String> newList = new ArrayList<>(); newList.addAll(listOne); newList.addAll(listTwo.iterator());
Java 8 ストリーム連結:
Java 8 以降では、ストリーム連結により簡潔で効率的な代替案:
List<String> newList = Stream.concat(listOne.stream(), listTwo.stream()) .collect(Collectors.toList());
Java 16 toList メソッド:
Java 16 では、ストリームの収集を簡素化する toList メソッドが導入されています:
List<String> newList = Stream.concat(listOne.stream(), listTwo.stream()).toList();
一行解決策:
前のアプローチを組み合わせると、ワンライナーが可能になります:
List<String> newList = new ArrayList<>().addAll(listOne).addAll(listTwo);
注:
これらのメソッドはすべて、元のリストを変更しない、JDK のみを使用する、外部ライブラリに依存しないという指定された条件。提供されるソリューションは、古典的な手法から最新の Java 機能まで多岐にわたり、プラットフォームの互換性やコーディング設定に基づいた柔軟性を提供します。
以上がオリジナルを変更せずに JDK のみを使用して 2 つの Java リストを連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。