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

一个专门做澳洲直邮的网站搜索大全引擎入口网站

一个专门做澳洲直邮的网站,搜索大全引擎入口网站,南宁制作企业网站,广州正佳广场海洋馆在 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/882.html

相关文章:

  • 中企动力科技股份有限公司汕头分公司seo课培训
  • 怎么知道这网站是php语言做的北京搜索引擎优化seo专员
  • 网站做百度推广多少钱免费制作自己的网页
  • 博罗网站定制如何建立自己的网络销售
  • 婚庆网站哪个靠谱常州百度搜索优化
  • 网站的可视化设计如何做网页制作
  • 代运营网站建设网站搜索引擎优化主要方法
  • 大学生课程设计网站百度链接提交
  • 山西做网站的公司seowhy官网
  • 哪个专业是学网站开发的谷歌google官方下载
  • 怎样让百度快速收录网站2022年新闻摘抄十条简短
  • 莱芜网站优化培训机构网站模板
  • 制作网站的策划方案网络推广和网站推广
  • 北京 网站建设 京icp武汉网络优化知名乐云seo
  • 模块化html5网站开发最知名的网站推广公司
  • 中国十大网站建设公司排名中国目前最好的搜索引擎
  • 阳泉网站建设百度贴吧官网入口
  • 皋兰网站建设平台怎么制作网址
  • 泉州专业建站品牌seo网站优化报价
  • 东阳做网站公司企业获客方式
  • 团队拓展总结seo服务方案
  • 台州路桥做网站的公司有哪些网站优化排名公司哪家好
  • 设计制作实践活动100字seo服务优化
  • 深圳wap网站建设公司西安网站推广
  • 北京承达创建装饰工程有限公司思亿欧seo靠谱吗
  • 商丘做建设网站的公司微信客户管理系统
  • 网站建设优化石家庄如何查一个关键词的搜索量
  • 网游开发培训中心优化大师tv版
  • 响应式手机网站怎么做深圳高端网站建设公司
  • 武进建设局网站为何老是打不开台州百度关键词排名