Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >根据List中对象的某个属性进行去重

根据List中对象的某个属性进行去重

作者头像
botkenni
发布于 2021-12-27 11:33:34
发布于 2021-12-27 11:33:34
2.4K00
代码可运行
举报
文章被收录于专栏:IT码农IT码农
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.huixin;
import java.util.*;
/**
  * 根据对象属性字段给list集合去重
  *
  * @author Lance
  * @date 2017/03/14
  */
 public class ListQC {
     public static void main(String[] args) {
         List<User> userList = new ArrayList<User>();
         User user1 = new User("张三", "001");
         userList.add(user1);
         User user2 = new User("李四", "001");
         userList.add(user2);
         User user3 = new User("王五", "002");
         userList.add(user3);
         for (User u : userList) {
             System.out.println(u.getName());
         }
         System.out.println("去重后=======>");
         List<User> userListNoDupAndSort = removeDuplicateUser(userList);
         for (User u : userListNoDupAndSort) {
             System.out.println(u.getName());
         }
     }
     private static ArrayList<User> removeDuplicateUser(List<User> users) {
         Set<User> set = new TreeSet<User>(new Comparator<User>() {
 @Override
             public int compare(User o1, User o2) {
                 //字符串,则按照asicc码升序排列
                 return o1.getUserId().compareTo(o2.getUserId());
             }
         });
         set.addAll(users);
         return new ArrayList<User>(set);
     }
 }
 class User {
     private String name;
     private String userId;
    public User(String name, String userId) {
         this.name = name;
         this.userId = userId;
     }
    public String getName() {
         return name;
     }
    public void setName(String name) {
         this.name = name;
     }
    public String getUserId() {
         return userId;
     }
    public void setUserId(String userId) {
         this.userId = userId;
     }
 }
 
---------------------
private List<AuditResult> removeDuplicateModel(List<AuditResult> results) {
         Set<AuditResult> set = new TreeSet<>(new Comparator<AuditResult>() {
 @Override
             public int compare(AuditResult o1, AuditResult o2) {
                 //字符串,则按照asicc码升序排列
                 return o1.getAuditEntity().compareTo(o2.getAuditEntity());
             }
         });
         set.addAll(results);
         return new ArrayList<>(set);
 }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java Web技术经验总结(五)
按照注释中的说法,字符编码取决于JVM启动参数、Locale和底层的系统编码,因此我再回去看我的JVM的启动参数(命令:ps -ef | grep java):
阿杜
2018/08/06
3110
Java Web技术经验总结(五)
Lambda【1】-- List相关Lambda表达式使用(上篇)
Lambda在jdk1.8里面已经很好用了,在这里不讲底层的实现,只有简单的用法,会继续补全。
秦怀杂货店
2020/12/26
9310
对list中的对象属性排序
而Arrays.sort使用的是冒泡和归并排序,默认是归并排序,所以排序速度还是很快的.
IT小马哥
2020/03/18
2.7K0
Comparable和Comparator兄弟情深?
Comparable和Comparator乍一看像兄弟俩。但是,虽然长得像,使用上却是有很多区别。
烟雨星空
2020/06/16
3000
Comparator 和 Comparable的区别
1.位置 Comparable 位于 java.lang,我们都知道 java.lang包可以说是 java体系中基础包,有 ClassLoader、Class、Object、基本类型等 Comparator 位于 java.util,也就是 java 自带的类库,包括一些常用的集合类、strem、function
shengjk1
2020/02/29
3670
List 如何根据对象的属性去重?Java 8 轻松搞定!
一、去除List中重复的String public List<String> removeStringListDupli(List<String> stringList) {     Set<String> set = new LinkedHashSet<>();     set.addAll(stringList);     stringList.clear();     stringList.addAll(set);     return stringList; } 或使用Java8的写法: Lis
程序猿DD
2022/04/07
3.4K0
Java8的List Object 去重
假设Object为User,此处User类中省略getting/setting以及相关构造方法。
WindCoder
2020/01/21
1.9K0
list去除相同String、对象元素
一、当相同元素为String时 方法一 /** * List去重 */ private List<String> removeDuplicate(List<String> list) { LinkedHashSet<String> set = new LinkedHashSet<String>(list.size()); set.addAll(list); list.clear(); list.addAll(
崔笑颜
2020/06/08
8490
stream流
排序 public void test1(){ ArrayList<User> userList = new ArrayList<>(); User user1 = new User("tian",1); User user2 = new User("aian", 1); User user3 = new User("wen", 3); userList.add(user1); userList.add(
用户6510625
2019/12/15
6660
Java List 常用操作
新建一个User对象 public class User{ private String userId; private String name; private String sex; private String height; public User(String userId,String name,String sex,String height){ this.userId = userId; this.name =
赵哥窟
2022/07/28
4660
java集合之List、Set
默认情况下:扩容为原来的 1.5 倍,同时需要将原有的数组中的数据复制到新的数组中。 结论:建议开发中使用带参的构造器:ArrayList list = new ArrayList(int capacity)
OY
2022/02/21
2780
java集合之List、Set
List对象去重及按属性去重的8种方法-java基础总结第六篇
最近在写一些关于java基础的文章,但是我又不想按照教科书的方式去写知识点的文章,因为意义不大。基础知识太多了,如何将这些知识归纳总结,总结出优缺点或者是使用场景才是对知识的升华。所以我更想把java相关的基础知识进行穿针引线,进行整体上的总结。
字母哥博客
2020/09/23
8.1K0
List对象去重及按属性去重的8种方法-java基础总结第六篇
别再问问JDK的Stream怎么用了好么?面试官
JDK8发布到现在,已经过了8年的时间了,但是就是到现在,依然在面试的过程中,还有人问这个 JDK8 里面都优化了什么内容,对比 JDK7 来说,今天阿粉就再继续叨叨一次,真的是让面试官给整服气了。
Java极客技术
2022/12/04
2820
常用Lamda表达式
我们在使用lamda表达式排序的时候,很多时候考虑到空指针可能会选择传统的方式,lamda实际上也有防止空指针的排序。
全栈程序员站长
2022/06/30
2950
常用Lamda表达式
List Stream 的常规用法
// 遍历后判断赋给另一个List集合,保持原来顺序 public static void ridRepeat1(List<String> list) { System.out.println("list = [" + list + "]"); List<String> listNew = new ArrayList<String>(); for (String str : list) { if (!listNew.contains(str)) { listNew.add(str); } } System.out.println("listNew = [" + listNew + "]"); }
小马哥学JAVA
2022/11/21
4410
还在自己写迭代器进行remove?快来看看新方法
我们都知道 List 中是不允许在循环的过程中去进行移除元素的,为什么呢?一般的新人可能会遇到这个问题,比如说会从 List 的遍历的过程中去进行 remove 数据,但是干过几年的开发的有经验的工作人员,是肯定不会这么干的,很简单,会报错。
Java极客技术
2022/12/04
2540
还在自己写迭代器进行remove?快来看看新方法
Java8 Stream流操作学习总结
传统的数据处理都是用循环来解决,而不是像搜索数据库那样有具体的搜索语句,而Java8的Stream提供了很好的方案,往往一行就搞定了,而且Stream还可以链式操作,一行代码实现多个循环的功能,代码风格十分像nosql数据库。
用户5224393
2019/08/13
7710
Java实现List中集合的元素进行排序
简单集合排序 public static List<Integer> getIntegerList(){ List<Integer> integerList = new ArrayList<>(); integerList.add(23); integerList.add(15); integerList.add(35); integerList.add(68); integerList.add(43)
共饮一杯无
2022/11/28
6420
JAVA8新特性之List的各种用法(最大、最小、平均值、分组、求和、遍历、过滤、排序)
构建一个User实体类供演示 public class Users { /** * ID */ private Long id; /** * 用户名 */ private String name; /** * 年龄 */ private int age; /** * 工号 */ private String jobNumber; /** * 性别
Kevin_Zhang
2021/06/29
3.8K0
阿里字节技术大佬都在用的List集合去重方案!
碰到List去重的问题,除了遍历去重,我们常常想到利用Set集合不允许重复元素的特点,通过List和Set互转,来去掉重复元素。
JavaEdge
2021/12/07
2700
阿里字节技术大佬都在用的List集合去重方案!
相关推荐
Java Web技术经验总结(五)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验