总结:通过Stream.concat()方法可以更优雅的合并两个集合,并且可以更轻松的执行去重、排序、过滤等一系列操作。
演示:
public class Test {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("熊大");
list1.add("熊二");
list1.add("光头强");
List<String> list2 = new ArrayList<>();
list2.add("喜羊羊");
list2.add("懒羊羊");
list2.add("沸羊羊");
list2.add("光头强");
//通过Stream合并 & 顺便执行去重操作
List<String> concatList = Stream
.concat(list1.stream(), list2.stream())
.distinct()
.collect(Collectors.toList());
System.out.println("通过Stream合并:" + concatList);
System.out.println("===========================================");
//常规合并,此时如果需要去重,还要再增加去重代码,比较麻烦
List<String> list3 = new ArrayList<>();
list3.addAll(list1);
list3.addAll(list2);
System.out.println("常规合并:" + list3);
}
}
结果:
通过Stream合并:[熊大, 熊二, 光头强, 喜羊羊, 懒羊羊, 沸羊羊]
=====================================================
常规合并:[熊大, 熊二, 光头强, 喜羊羊, 懒羊羊, 沸羊羊, 光头强]