当前位置: 首页 > news >正文

Java Stream API 提供了一种非常方便的方式来比较两个 List 的差异,并取出不同的对象

Java Stream API 提供了一种非常方便的方式来比较两个 List 的差异,并取出不同的对象。这可以通过使用 distinct() 和 filter() 方法来实现。

假设我们有两个 List,一个是 list1,另一个是 list2,我们想找出 list1 中存在但 list2 中不存在的元素。

以下是如何实现的示例代码:

import java.util.Arrays;  
import java.util.List;  
import java.util.stream.Collectors;  public class Main {  public static void main(String[] args) {  List<String> list1 = Arrays.asList("Apple", "Banana", "Cherry", "Date", "Elderberry");  List<String> list2 = Arrays.asList("Apple", "Banana", "Cherry", "Fig", "Grape");  List<String> diffList1 = list1.stream()  .filter(s -> !list2.contains(s))  .collect(Collectors.toList());  System.out.println("Difference in list1: " + diffList1);  }  
}

在这个例子中,我们使用了 stream() 方法来创建一个从 list1 的元素到流的管道。然后,我们使用了 filter() 方法来过滤出 list2 中不存在的元素。最后,我们使用 collect() 方法将结果收集到一个新的 List 中。输出结果将是 list1 中存在但 list2 中不存在的元素。

如果你想找出 list2 中存在但 list1 中不存在的元素,只需将上述代码中的 list1 和 list2 交换即可:

import java.util.Arrays;  
import java.util.List;  
import java.util.stream.Collectors;  public class Main {  public static void main(String[] args) {  List<String> list1 = Arrays.asList("Apple", "Banana", "Cherry", "Date", "Elderberry");  List<String> list2 = Arrays.asList("Apple", "Banana", "Cherry", "Fig", "Grape");  List<String> diffList2 = list2.stream()  .filter(s -> !list1.contains(s))  .collect(Collectors.toList());  System.out.println("Difference in list2: " + diffList2);  }  
}
http://www.lryc.cn/news/253167.html

相关文章:

  • C语言还会存在多久
  • 手持式安卓主板_PDA安卓板_智能手持终端方案
  • LeetCode103. Binary Tree Zigzag Level Order Traversal
  • PHP 判断给定两个时间是否在同一周,月,年
  • 单机无锁线程安全队列-Disruptor
  • 好工具知多少:国内外最常用的SCADA软件
  • SQL Server 2016(创建数据库)
  • Vue学习计划--Vue2(一)简单了解vue
  • 微信小程序生成二维码并保存到本地方法
  • shell_exec 和 exec区别
  • WPF创建进度条
  • 全网最新最全面的Appium自动化:Appium常用操作之混合应用webview页面操作--待补充!
  • 基于OpenCV+YOLOv5实现车辆跟踪与计数(附源码)
  • 05、pytest断言确定的异常
  • 金蝶云星空单据编辑界面,不允许批量填充操作
  • Springboot项目启动成功后可通过五种方式继续执行
  • 什么是供应链金融分账系统?
  • 【测绘程序设计】——坐标换带与高程投影
  • 企业计算机服务器中了Mallox勒索病毒如何解密,Mallox勒索病毒数据恢复
  • 一套rk3588 rtsp服务器推流的 github 方案及记录 -01
  • PyQt6 QComboBox下拉组合框控件
  • 常用类与比较器
  • 【上海大学《面向对象程序设计A》课程小项目报告】抽象向量类模板及其派生类
  • Leetcode每日一题学习训练——Python3版(到达首都的最少油耗)
  • Java面试题(每天10题)-------连载(42)
  • netty websocket学习
  • 【数据结构】环形队列
  • 嵌入式C编码规范
  • Golang 并发 — 流水线
  • Elasticsearch:什么是非结构化数据?