Java 8 Stream API: 找出两个集合中存在的差异数据

使用Java 8的Stream API可以方便地找出两个集合中存在的差异数据。假设我们有两个集合:List<Long> newsList<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());

代码解析:

  1. olds.stream(): 使用stream()方法将olds集合转换为一个Stream对象。
  2. .filter(o -> !news.contains(o)): 使用filter()方法过滤Stream中的元素。o -> !news.contains(o)是一个lambda表达式,用于判断当前元素o是否在news集合中存在。如果o不在news集合中,则保留该元素。
  3. .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()方法可以将过滤后的元素收集到新的集合中。

Java 8 Stream API: 找出两个集合中存在的差异数据

原文地址: https://www.cveoy.top/t/topic/oA40 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录