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

中山模板建站公司十大手游平台app排行榜

中山模板建站公司,十大手游平台app排行榜,百度点击率排名有效果吗,天津网站制作首页在线咨询在 Java 8 及以上版本中&#xff0c;可以使用 Lambda 表达式和 Stream API 对两个 List 进行去重操作。以下是几种常见的去重场景及对应的 Lambda 表达式实现方式&#xff1a; 1. 合并两个 List 并去重 List<String> list1 Arrays.asList("A", "B"…

        在 Java 8 及以上版本中,可以使用 Lambda 表达式和 Stream API 对两个 List 进行去重操作。以下是几种常见的去重场景及对应的 Lambda 表达式实现方式:

1. 合并两个 List 并去重

List<String> list1 = Arrays.asList("A", "B", "C");
List<String> list2 = Arrays.asList("B", "C", "D");// 合并并去重(使用 Stream.concat + distinct)
List<String> distinctList = Stream.concat(list1.stream(), list2.stream()).distinct().collect(Collectors.toList());System.out.println(distinctList); // [A, B, C, D]

2. 取两个 List 的交集(保留重复元素)

List<String> list1 = Arrays.asList("A", "B", "B", "C");
List<String> list2 = Arrays.asList("B", "C", "C", "D");// 取交集(保留重复元素)
List<String> intersection = list1.stream().filter(list2::contains).collect(Collectors.toList());System.out.println(intersection); // [B, B, C]

3. 取两个 List 的交集(去重)

List<String> list1 = Arrays.asList("A", "B", "B", "C");
List<String> list2 = Arrays.asList("B", "C", "C", "D");// 取交集(去重)
List<String> distinctIntersection = list1.stream().filter(list2::contains).distinct().collect(Collectors.toList());System.out.println(distinctIntersection); // [B, C]

4. 取两个 List 的差集(list1 有但 list2 没有)

List<String> list1 = Arrays.asList("A", "B", "C");
List<String> list2 = Arrays.asList("B", "C", "D");// list1 有但 list2 没有的元素(去重)
List<String> difference = list1.stream().filter(e -> !list2.contains(e)).collect(Collectors.toList());System.out.println(difference); // [A]

5. 合并两个 List 并去重(自定义对象去重)

        如果 List 里存放的是自定义对象(如 User),需要重写 equals() 和 hashCode() 方法,然后使用 distinct() 去重:

class User {private String name;private int age;// 构造方法、getter、setter 省略@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;User user = (User) o;return age == user.age && Objects.equals(name, user.name);}@Overridepublic int hashCode() {return Objects.hash(name, age);}
}// 测试
List<User> list1 = Arrays.asList(new User("Alice", 20), new User("Bob", 25));
List<User> list2 = Arrays.asList(new User("Bob", 25), new User("Charlie", 30));List<User> distinctUsers = Stream.concat(list1.stream(), list2.stream()).distinct().collect(Collectors.toList());distinctUsers.forEach(u -> System.out.println(u.getName())); // Alice, Bob, Charlie

6. 使用 Set 去重(更高效)

如果只是单纯去重,可以先把 List 转成 Set(自动去重),再转回 List

List<String> list = Arrays.asList("A", "B", "B", "C");
List<String> distinctList = new ArrayList<>(new HashSet<>(list));System.out.println(distinctList); // [A, B, C](顺序可能变化)

7、总结

场景方法
合并两个 List 并去重Stream.concat(list1.stream(), list2.stream()).distinct()
取交集(保留重复)list1.stream().filter(list2::contains).collect(Collectors.toList())
取交集(去重)list1.stream().filter(list2::contains).distinct().collect(Collectors.toList())
取差集(list1 有但 list2 没有)list1.stream().filter(e -> !list2.contains(e)).collect(Collectors.toList())
自定义对象去重重写 equals() 和 hashCode(),再用 distinct()

选择合适的方式取决于你的具体需求(是否保留顺序、是否需要高性能等)。

http://www.dtcms.com/wzjs/577134.html

相关文章:

  • 腾讯广告建站工具镇江企力信息有限公司
  • html网站制作上传照片的网站赚钱
  • 公司在线网站制作系统网站首页图片素材
  • 网站规划与设计课程设计网站定位有哪些
  • 哪里的网站建设浏览网站内下载文件
  • 餐饮公司加盟网站建设东莞网站建设什么价格便宜
  • 电商网站前端开发施工企业的期间费用主要包括哪些
  • 多大的服务器可以做视频网站服装公司网站模版
  • 网站程序是什么合肥市城乡建设局网站首页
  • 广东省级建设主管部门网站音乐影视网站建设方案
  • 南昌网站建设方案推广wordpress换成中文
  • 免费制作一个企业网站负责做网站的叫什么公司
  • 网站建设内容策略展位设计
  • .net网站模版做电影资源网站有哪些内容
  • 网站可以建几个人网站开发 工具
  • django商城网站开发的功能国外网站模板网站建设
  • 网站建设 千助上海小微企业名录查询
  • 如何在yy做电影网站网站地图生成软件
  • 科技网站排名6万左右装修三室两厅
  • 四川网站制作成都如何使用模板做网站
  • 有用cc域名做网站的海港经济开发区人才网
  • 网站建设灬金手指科杰免费源码网站天
  • 抖音网站怎么做个人信息网站建设的心得体会
  • 天津网站建设哪家做得好wordpress搭建个人网站
  • wordpress 建站免费郑州遗像制作
  • 企业定制网站开发维护合同前端是啥
  • 做网站代码难么专业网站开发培训
  • html5 网站建设小程序备用金
  • dw做网站模板知名平面广告设计公司
  • 公司网站设计需要什么wordpress高级版破解版