合并并去重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并去除重复对象的方法。这种技术在实际项目中经常会用到,希望本文对读者有所帮助。