【去重和排序】同一个list下,Map或对象内相同属性值取另一个属性值的最小值或最大值
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或对象内相同属性值取另一个属性值的最小值或最大值相关推荐
- php只显示一部分文章,typecho同一个页面下调用不同分类的文章但是却只显示一个分类文章...
typecho同一个页面下调用不同分类的文章但是却只显示一个分类文章 作者:佚名 来源:爱好者 时间:2018-04-30 问题描述: 同页面调用分类下文章,只显示一第一个分类下的文章 在一个页面中, ...
- 关于选择排序的优化——同时找出最小值与最大值
关于选择排序的优化--同时找出最小值与最大值 近期在学习排序算法,第一种方法就是选择排序.首先选择排序是一种不稳定的算法,其思想是通过遍历数组,找出最小值(最大值)的位置,放到已排序序列的启示(末尾) ...
- Map集合遍历方式--遍历键找值方式、遍历键值对方式
键找值方式:即通过元素中的键,获取键所对应的值. 分析步骤: 1. 获取Map中所有的键,由于键是唯一的,所以返回一个Set集合存储所有的键.方法提示: keyset() 2. 遍历键的Set集合,得 ...
- MapReduce基础开发之二数据去重和排序
因Hadoop集群平台网络限制,只能在eclipse里先写好代码再提交jar到集群平台namenode上执行,不能实时调试,所以没有配置eclipse的hadoop开发环境,只是引入了hadoop的l ...
- 数组元素的去重与排序
003-华为机试-在线训练 题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把 ...
- 前端面试题-数组去重和排序
首先,不好意思,我昨天偷懒了,没有更新面试题,今日补上昨日的锅. 基于上次的对象转化题目,不少同学指出对象种的数组如果长度不一样,不能满足功能,所以针对这个进行优化,代码如下所示: <scrip ...
- vector 结构体排序_指下码上横戈行——排序
常见的排序算法有冒泡排序,选择排序,堆排序,快速排序这几种,但十三写博客的目的是为了提高自己的编程解题能力,故在这里介绍如何能快速解决那些涉及到排序的编程问题,首先针对这些问题C++ STL库中已经有 ...
- 数组-去重、排序方法、json排序
1.数组去重 /*方法一: 1,'1' 会被认为是相同的; 所有hash对象,如:{x;1},{y:1}会被认为是相同的 //10ms */ Array.prototype.unique=functi ...
- java map对象排序输出_java实现对象的排序(List和Map)
java实现对象的排序(List和Map) List和Map的排序 在实际的开发当中,我们经常 在文件浏览的时候经常有多种浏览方式,按时间整箱排序,逆向排序,按大小正逆向排序 ,按 按价格正逆向排序, ...
最新文章
- 代码重构中的几个概念
- JVM运行时结构、Java内存管理、JVM实例、HotSpot VM对象的创建、内存布局和访问定位
- Flask博客开发——Tinymce编辑器
- 访存优化_Hibernate事实:多级访存
- 明年新iphone使用增强版5nm芯片_苹果A15芯片或将采用台积电5nm+工艺!性能提升极强...
- html编辑器 开发原理,在线所见即所得HTML编辑器的实现原理浅析
- JS高级——面向对象方式解决歌曲管理问题
- python定时任务启动与停止_对Python定时任务的启动和停止方法详解
- oracle练习之查询1(where等)
- Spring Boot拦截器配置拦截登陆
- DiskGenius 强行拆分黑苹果HFS硬盘分区以给Windows扩容
- 小菜鸡跟着小破站黑马程序员学习JAVA的真实经历、感受与收获
- 【前端小技能】Vue集成百度离线地图
- html head标签详解
- 虚拟WIFI软件测试工程师,【Wifi测试工程师是什么职位】中互联zhl.com2021年Wifi测试工程师待遇怎么样-看准网...
- 我的第200篇博客:Linux下手把手搭建DHCP、DNS、HTTP、FTP服务器及遇到问题的解决过程
- 建网站如何选择空间?
- setTimeout理解
- javascript和jQurey增删元素
- 网站下方的copyright和ICP备案号是什么意思?