集合去重,根据元素中某个字段去重
1、流过滤(推荐)
//AppIspArea::getRegionCode是键映射函数,它告诉toMap收集器使用RegionCode字段作为键。Function.identity()是值映射函数,它表示值就是条目本身。 // 最后的lambda表达式(existing, replacement) -> existing定义了当键冲突时如何解决,此例中选择保留现有的条目。 List<AppIspArea> distinctFinalList = finalList.stream().collect(Collectors.toMap(AppIspArea::getRegionCode, Function.identity(), (existing, replacement) -> existing )).values().stream().collect(Collectors.toList());
2、LinkedHashSet去重
List<String> list = new ArrayList<>();
list.add("111");
list.add("22");
list.add("111");
list.add("33");
list.add("111");
List<String> newPhoneList = new ArrayList<String>(new LinkedHashSet<>(list));//LinkedHashSet集合去重
3、stream去重
//添加信息 List<PenBean> penBeanList = new ArrayList<PenBean>(); penBeanList.add(new PenBean("铅笔","black")); penBeanList.add(new PenBean("铅笔","white")); penBeanList.add(new PenBean("铅笔","black")); penBeanList.add(new PenBean("中性笔","white")); penBeanList.add(new PenBean("中性笔","white")); //使用java8新特性stream进行List去重 List<PenBean> newPenBeanList = penBeanList.stream().distinct().collect(Collectors.toList());
4、Hashset去重
//添加信息 List<PenBean> penBeanList = new ArrayList<PenBean>(); penBeanList.add(new PenBean("铅笔","black")); penBeanList.add(new PenBean("铅笔","white")); penBeanList.add(new PenBean("铅笔","black")); penBeanList.add(new PenBean("中性笔","white")); penBeanList.add(new PenBean("中性笔","white")); //新数据 List<PenBean> newPenBeanList = new ArrayList<PenBean>(); //set去重 HashSet<PenBean> set = new HashSet<>(penBeanList); newPenBeanList.addAll(set);
吾乃代码搬运工,侵联删
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」