Java 8 Stream API: 找出两个集合中存在的差异数据
Java 8 Stream API: 找出两个集合中存在的差异数据
使用Java 8的Stream API可以方便地找出两个集合中存在的差异数据。假设我们有两个集合:List<Long> news 和 List<Long> olds,需要找出olds集合中存在但news集合中不存在的数据。
具体实现如下:
List<Long> news = ...; // 初始化news集合
List<Long> olds = ...; // 初始化olds集合
List<Long> result = olds.stream()
.filter(o -> !news.contains(o))
.collect(Collectors.toList());
代码解析:
olds.stream(): 使用stream()方法将olds集合转换为一个Stream对象。.filter(o -> !news.contains(o)): 使用filter()方法过滤Stream中的元素。o -> !news.contains(o)是一个lambda表达式,用于判断当前元素o是否在news集合中存在。如果o不在news集合中,则保留该元素。.collect(Collectors.toList()): 使用collect()方法将过滤后的Stream元素收集到一个新的List中。
示例:
假设 news 集合为 [1, 2, 3],olds 集合为 [1, 2, 3, 4, 5],则最终得到的result 集合为 [4, 5]。
总结:
使用Java 8的Stream API可以方便地处理集合操作,例如找出两个集合中存在的差异数据。filter()方法可以根据条件过滤Stream中的元素,collect()方法可以将过滤后的元素收集到新的集合中。
原文地址: https://www.cveoy.top/t/topic/oA40 著作权归作者所有。请勿转载和采集!