合并并去重Java两个list中的对象
在Java编程中,经常会遇到需要合并两个List并去除重复对象的情况。本文将介绍如何使用Java中的集合操作来实现这一功能。
合并两个List
首先,我们需要明白如何将两个List合并成一个List。在Java中,可以使用addAll()方法来实现这一功能。示例代码如下:
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<>();
list2.add("B");
list2.add("C");
list1.addAll(list2);
System.out.println(list1); // 输出:[A, B, B, C]
上述代码中,我们首先创建了两个List:list1和list2,然后使用addAll()方法将list2中的元素全部添加到list1中。
去除重复对象
接下来,我们需要去除合并后List中的重复对象。可以使用Java 8中新增的stream()和distinct()方法来实现去重功能。示例代码如下:
List<String> mergedList = list1.stream().distinct().collect(Collectors.toList());
System.out.println(mergedList); // 输出:[A, B, C]
上述代码中,我们通过stream()方法将List转换成流,然后调用distinct()方法去除重复元素,最后通过collect()方法将流转换成List。
合并并去重
结合上述两个步骤,我们可以将合并和去重操作合并在一起。示例代码如下:
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<>();
list2.add("B");
list2.add("C");
List<String> mergedList = Stream.of(list1, list2)
.flatMap(Collection::stream)
.distinct()
.collect(Collectors.toList());
System.out.println(mergedList); // 输出:[A, B, C]
上述代码中,我们使用Stream.of()方法将list1和list2合并成一个新的流,然后通过flatMap()方法将每个List转换成单独的流,接着调用distinct()方法去除重复元素,最后通过collect()方法将流转换成List。
饼状图展示
下面我们使用饼状图展示合并前和合并后的数据情况:
pie
title 合并前数据情况
"List1": 50
"List2": 50
pie
title 合并后数据情况
"A": 25
"B": 25
"C": 25
如上所示,合并前List1和List2的数据量均为50%,合并后数据中包含A、B、C三种元素。
通过本文的介绍,相信读者已经掌握了如何在Java中合并两个List并去除重复对象的方法。这种技术在实际项目中经常会用到,希望本文对读者有所帮助。