Java Stream实现两个list去重
1. 简介
在Java开发中,经常会遇到需要将两个List合并并去重的问题。使用Java Stream可以非常方便地实现这一需求。本文将介绍如何使用Java Stream来实现两个List的去重操作,并提供详细的代码示例。
2. 流程图
首先,让我们来看一下整个流程的图示,如下所示:
erDiagram
List1 ||--o{ 合并
List2 ||--o{ 去重
去重 --o| 结果
3. 代码示例
下面是每一步需要做的事情以及对应的代码示例:
3.1. 合并两个List
首先,我们需要将两个List合并成一个List。可以使用addAll()
方法来实现。代码示例:
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 = new ArrayList<>();
mergedList.addAll(list1);
mergedList.addAll(list2);
在上述代码中,我们创建了两个List:list1
和list2
。然后,使用addAll()
方法将list2
中的元素添加到list1
中,从而实现了两个List的合并。
3.2. 去重
接下来,我们需要使用Java Stream来对合并后的List进行去重操作。可以使用distinct()
方法来实现。代码示例:
List<String> distinctList = mergedList.stream().distinct().collect(Collectors.toList());
在上述代码中,我们使用stream()
方法将List转换为Stream,然后使用distinct()
方法进行去重操作,最后使用collect(Collectors.toList())
方法将Stream转换为List。
3.3. 完整代码示例
下面是完整的代码示例,包括合并和去重的操作:
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class ListUtils {
public static void main(String[] args) {
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 = new ArrayList<>();
mergedList.addAll(list1);
mergedList.addAll(list2);
List<String> distinctList = mergedList.stream().distinct().collect(Collectors.toList());
System.out.println("合并后的List:" + mergedList);
System.out.println("去重后的List:" + distinctList);
}
}
运行上述代码,输出结果如下:
合并后的List:[A, B, B, C]
去重后的List:[A, B, C]
4. 总结
使用Java Stream可以非常方便地实现两个List的去重操作。通过使用addAll()
方法将两个List合并,然后使用distinct()
方法对合并后的List进行去重,即可得到最终的去重结果。希望本文对于理解和使用Java Stream进行List去重有所帮助。