一、合併兩個List集合
1、使用addAll方法進行合併
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6));
list1.addAll(list2);
使用addAll方法可以將一個集合的所有元素添加到另一個集合中,從而實現合併。以上代碼將list2中的所有元素添加到list1中,從而實現兩個List集合的合併。
2、使用Java 8 Stream API進行合併
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6));
List<Integer> mergedList = Stream.concat(list1.stream(), list2.stream()).collect(Collectors.toList());
使用Java 8中新增的Stream API可以讓代碼更加簡潔和優雅。以上代碼使用concat方法將兩個List集合連接起來,然後使用collect方法將所有元素收集到一個新的List集合中,從而實現了兩個List集合的合併。
二、合併多個Java集合
1、使用addAll方法進行合併
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6));
List<Integer> list3 = new ArrayList<>(Arrays.asList(7, 8, 9));
List<Integer> mergedList = new ArrayList<>();
mergedList.addAll(list1);
mergedList.addAll(list2);
mergedList.addAll(list3);
使用addAll方法可以將多個集合的所有元素添加到一個新的集合中,從而實現合併。以上代碼將list1、list2和list3中的所有元素添加到一個新的List集合中,從而實現了多個Java集合的合併。
2、使用Java 8 Stream API進行合併
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6));
List<Integer> list3 = new ArrayList<>(Arrays.asList(7, 8, 9));
List<Integer> mergedList = Stream.of(list1, list2, list3).flatMap(Collection::stream).collect(Collectors.toList());
使用Java 8中新增的Stream API也可以很容易地實現多個Java集合的合併。以上代碼使用of方法將多個集合轉化為一個Stream對象,然後使用flatMap方法將所有元素放到同一個Stream中,最後使用collect方法將所有元素收集到一個新的List集合中。
三、Java集合合併優化
1、使用addAll方法進行優化
如果需要頻繁地合併多個Java集合,可以在程序初始化時就創建一個新的List集合,將所有元素添加到該集合中,避免頻繁地創建新的List集合和頻繁地使用addAll方法。
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6));
List<Integer> list3 = new ArrayList<>(Arrays.asList(7, 8, 9));
List<Integer> allElements = new ArrayList<>();
allElements.addAll(list1);
allElements.addAll(list2);
allElements.addAll(list3);
2、使用Java 8 Stream API進行優化
使用Java 8中的Parallel Stream API可以讓集合的合併操作並行化,在多核處理器上可以提升程序的性能。
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6));
List<Integer> list3 = new ArrayList<>(Arrays.asList(7, 8, 9));
List<Integer> mergedList = Stream.of(list1, list2, list3).parallel().flatMap(Collection::stream).collect(Collectors.toList());
在以上代碼中,使用parallel方法將Stream並行化,即在多個線程上同時執行,提升了程序的性能。
原創文章,作者:LCBCI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/372566.html