传统方法:new ArrayList() + addAll()
List<Integer> list1 = Arrays.asList(1, 2, 3); List<Integer> list2 = Arrays.asList(4, 5); List<Integer> list3 = Arrays.asList(6); List<Integer> mergedList = new ArrayList<>(); mergedList.addAll(list1); mergedList.addAll(list2); mergedList.addAll(list3); System.out.println(mergedList); // 输出:[1, 2, 3, 4, 5, 6]
Java 8 + Stream API
List<Integer> list1 = Arrays.asList(1, 2); List<Integer> list2 = Arrays.asList(3, 4); List<Integer> list3 = Arrays.asList(4, 5); // 1. 基础合并(不去重) List<Integer> mergedList = Stream.of(list1, list2, list3) // 包装为 Stream<List<Integer>> .flatMap(Collection::stream) // 扁平化为 Stream<Integer> .collect(Collectors.toList()); // 收集为 List // 2. 合并+去重+排序 List<Integer> mergedDistinctSortedList = Stream.of(list1, list2, list3) .flatMap(Collection::stream) .distinct() // 去重 .sorted() // 排序 .collect(Collectors.toCollection(ArrayList::new)); // 指定 List 实现类 System.out.println(mergedList); // [1, 2, 3, 4, 4, 5] System.out.println(mergedDistinctSortedList); // [1, 2, 3, 4, 5]
Java 16 + Stream.concat()
List<String> listA = List.of("a", "b"); List<String> listB = List.of("c"); List<String> listC = List.of("d", "e"); List<String> mergedList = Stream.concat( listA.stream(), listB.stream(), listC.stream() ).collect(Collectors.toList()); System.out.println(mergedList); // [a, b, c, d, e]
Copyright Holder: Ching Wanyi
Link to This Post: https://blog.ezuxoay.top/archives/122.html
This work is licensed under the
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License
Comments Section