package test;
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("AAA", "001");
        userList.add(user1);
        User user2 = new User("AAA", "002");
        userList.add(user2);
        User user3 = new User("AAB", "002");
        userList.add(user3);
        User user4 = new User("AAB", "003");
        userList.add(user4);
        User user5 = new User("AAB", "004");
        userList.add(user5);
        for (User u : userList) {
            System.out.println(u.getName()+"-----"+u.getUserId());
        }
        System.out.println("去重后=======>");
        List<User> userListNoDupAndSort = removeDuplicateUserId(userList);
        for (User u : userListNoDupAndSort) {
            System.out.println(u.getName()+"-----"+u.getUserId());
        }
    }
    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);
    }
    
    private static ArrayList<User> removeDuplicateUserId(List<User> users) {
        Set<User> set = new TreeSet<User>(new Comparator<User>() {
            @Override
            public int compare(User o1, User o2) {
                //字符串,则按照asicc码升序排列
                return o1.getName().compareTo(o2.getName());
            }
        });
        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;
    }
}

【去重和排序】同一个list下,Map或对象内相同属性值取另一个属性值的最小值或最大值相关推荐

  1. php只显示一部分文章,typecho同一个页面下调用不同分类的文章但是却只显示一个分类文章...

    typecho同一个页面下调用不同分类的文章但是却只显示一个分类文章 作者:佚名 来源:爱好者 时间:2018-04-30 问题描述: 同页面调用分类下文章,只显示一第一个分类下的文章 在一个页面中, ...

  2. 关于选择排序的优化——同时找出最小值与最大值

    关于选择排序的优化--同时找出最小值与最大值 近期在学习排序算法,第一种方法就是选择排序.首先选择排序是一种不稳定的算法,其思想是通过遍历数组,找出最小值(最大值)的位置,放到已排序序列的启示(末尾) ...

  3. Map集合遍历方式--遍历键找值方式、遍历键值对方式

    键找值方式:即通过元素中的键,获取键所对应的值. 分析步骤: 1. 获取Map中所有的键,由于键是唯一的,所以返回一个Set集合存储所有的键.方法提示: keyset() 2. 遍历键的Set集合,得 ...

  4. MapReduce基础开发之二数据去重和排序

    因Hadoop集群平台网络限制,只能在eclipse里先写好代码再提交jar到集群平台namenode上执行,不能实时调试,所以没有配置eclipse的hadoop开发环境,只是引入了hadoop的l ...

  5. 数组元素的去重与排序

    003-华为机试-在线训练 题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把 ...

  6. 前端面试题-数组去重和排序

    首先,不好意思,我昨天偷懒了,没有更新面试题,今日补上昨日的锅. 基于上次的对象转化题目,不少同学指出对象种的数组如果长度不一样,不能满足功能,所以针对这个进行优化,代码如下所示: <scrip ...

  7. vector 结构体排序_指下码上横戈行——排序

    常见的排序算法有冒泡排序,选择排序,堆排序,快速排序这几种,但十三写博客的目的是为了提高自己的编程解题能力,故在这里介绍如何能快速解决那些涉及到排序的编程问题,首先针对这些问题C++ STL库中已经有 ...

  8. 数组-去重、排序方法、json排序

    1.数组去重 /*方法一: 1,'1' 会被认为是相同的; 所有hash对象,如:{x;1},{y:1}会被认为是相同的 //10ms */ Array.prototype.unique=functi ...

  9. java map对象排序输出_java实现对象的排序(List和Map)

    java实现对象的排序(List和Map) List和Map的排序 在实际的开发当中,我们经常 在文件浏览的时候经常有多种浏览方式,按时间整箱排序,逆向排序,按大小正逆向排序 ,按 按价格正逆向排序, ...

最新文章

  1. 代码重构中的几个概念
  2. JVM运行时结构、Java内存管理、JVM实例、HotSpot VM对象的创建、内存布局和访问定位
  3. Flask博客开发——Tinymce编辑器
  4. 访存优化_Hibernate事实:多级访存
  5. 明年新iphone使用增强版5nm芯片_苹果A15芯片或将采用台积电5nm+工艺!性能提升极强...
  6. html编辑器 开发原理,在线所见即所得HTML编辑器的实现原理浅析
  7. JS高级——面向对象方式解决歌曲管理问题
  8. python定时任务启动与停止_对Python定时任务的启动和停止方法详解
  9. oracle练习之查询1(where等)
  10. Spring Boot拦截器配置拦截登陆
  11. DiskGenius 强行拆分黑苹果HFS硬盘分区以给Windows扩容
  12. 小菜鸡跟着小破站黑马程序员学习JAVA的真实经历、感受与收获
  13. 【前端小技能】Vue集成百度离线地图
  14. html head标签详解
  15. 虚拟WIFI软件测试工程师,【Wifi测试工程师是什么职位】中互联zhl.com2021年Wifi测试工程师待遇怎么样-看准网...
  16. 我的第200篇博客:Linux下手把手搭建DHCP、DNS、HTTP、FTP服务器及遇到问题的解决过程
  17. 建网站如何选择空间?
  18. setTimeout理解
  19. javascript和jQurey增删元素
  20. 网站下方的copyright和ICP备案号是什么意思?

热门文章

  1. spring面向接口编程
  2. 同一个tomcat部署多个项目导致启动失败
  3. 一条SQL完成跨数据库实例Join查询
  4. @RequestParam今天才知道是咋用的..
  5. nginx: [error] invalid PID number问题处理
  6. Python 函数(参数组合)
  7. 用sql的select语句从数据库中获取数据
  8. mysql中profile的使用
  9. 【莫队算法】【权值分块】bzoj3585 mex
  10. 万人云峰会DevSecOps论坛:数字化浪潮下,安全开发与运维该如何破局?