在Java 中連接列表而不改變原始列表
在Java 中,將多個列表組合成一個新列表是一項常見任務。但是,問題中提到的方法需要修改原始列表,這可能並不總是可取的。
Java 8 Stream Concatenation
Java 8 引入了 Stream API ,它提供了一種更簡潔且不可變的方式來操作集合。對於列表串聯,您可以使用concat() 方法來合併兩個列表的流:
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();
這透過消除對collect() 操作的需要來簡化程式碼,進一步簡化列表串聯過程。
獎勵:JDK 1.3 版本
對於JDK 1.3,您可以使用以下技術:
List<String> newList = new ArrayList<String>(listOne.size() + listTwo.size()); newList.addAll(listOne); newList.addAll(listTwo);
此方法建立一個新的ArrayList,其大小可容納兩個原始列表,然後新增每個列表中的元素。雖然它不像基於流的方法那麼簡潔,但它仍然提供了不可變的結果。
以上是如何在Java中連接列表而不修改原始列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!