List根据某字段去重,以及compareTo 浅解
原文链接:https://blog.csdn.net/qq_35788725/article/details/82259013
Collections.sort可对集合进行排序
根据List里面某个字段进行出重筛选,此文是使用compareTo 比较器。请看代码:
public static void main(String[] args) {
//
List<one> oneList = new ArrayList<one>();
oneList.add(new one(1, "11111"));
oneList.add(new one(2, "22222"));
oneList.add(new one(4, "33333"));
oneList.add(new one(3, "11111"));
oneList.add(new one(5, "44444"));
oneList.add(new one(6, "44444"));
oneList.add(new one(7, "55555"));
//=======比较器===========================================
Set<one> treeSet = new TreeSet<one>(new Comparator<one>(){
@Override
public int compare(one o1, one o2) {
//升序
int compareTo = o1.getName().compareTo(o2.getName());
//降序
//int compareTo = o2.getName().compareTo(o1.getName());
return compareTo;
}
});
treeSet.addAll(oneList);
//放入新的list 或者把当前的list进行close
List<one> arrayList = new ArrayList<>(treeSet);
for (one one : arrayList) {
System.out.println(one.getName());
}
}
}
//实体
class one{
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public one(int id, String name) {
super();
this.id = id;
this.name = name;
}
public one() {
super();
// TODO Auto-generated constructor stub
}
}
运行结果:
==========处理前========
11111
22222
33333
11111
44444
44444
55555
==========处理后========
11111
22222
33333
44444
55555
以上就是根据list的某个字段用compareto来去重。
以下是关于compareTo()的浅解:
compareTo(): 方法用于将 Number 对象与方法的参数进行比较。可用于比较 Byte, Long, Integer等。
该方法用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较(runoob.com解释)。
compareTo():
如果指定的数与参数相等返回0。
如果指定的数小于参数返回 -1。
如果指定的数大于参数返回 1。
示例:
public static void main(String[] args) {
Integer a = 99;
System.out.println(a.compareTo(88));
System.out.println(a.compareTo(100));
System.out.println(a.compareTo(99));
}
运行结果:
1
-1
0
List根据某字段去重,以及compareTo 浅解的更多相关文章
- List集合中的对象按照某个字段去重实现
package com.liying.banana.user; import java.util.ArrayList; import java.util.Comparator; import java ...
- list集合中指定字段去重
在开发中,有时会需要指定字段去重,以下为实现方法: 假设有个房地产权的类,其中宗地代码ZDDM值重复,而我们在前端页面显示时,只需要一条数据,因为公共字段都一样: IEqualityComparer需 ...
- MySQL 查询重复的数据,以及部分字段去重和完全去重
1.查找表中多余的重复记录(多个字段) select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vit ...
- sql针对某一字段去重,并且保留其他字段
今天客户提了一个小需求,希望我能提供一条sql语句,帮助他对数据中 _field 这个字段的值去重,并且保留其他字段的数据.第一反应是select distinct,但这种语句在对某个字段去重时,无法 ...
- php二维数组根据某个字段去重
php的二维数组根据某个字段去重,在这默认为二维数组的结构是一样的,现在根据二维数组里的id字段去重,把id相同的重复的元素去掉 /** * 二维数组根据某个字段去重 * @param array $ ...
- list根据某个字段去重
方法一:使用Set List<User> newList = new ArrayList<User>(); Set<String> set = new HashSe ...
- DataTable根据字段去重
DataTable根据字段去重 最近需要对datatable根据字段去重,在网上搜了很多,找到了一个方法,代码如下 public static DataTable DistinctSomeColumn ...
- oracle 多字段去重查询
oracle 多字段去重查询 CreationTime--2018年6月29日15点11分 Author:Marydon 1.情景展示 需要对表BASE_MRI_DEVICE的COMPNAME.F ...
- C#NPOI.RabbitMQ.EF.Attribute.HttpRuntime.Cache.AD域.List<T>根据指定字段去重.前端JQuery.Cache.I18N(多语言).data-xx(自定义属性)
使用NPOI 操作Excel 个人使用的电脑基本默认安装Excel 操作起来 调用Excel的组件便可.如果是一台服务器.没有安装Excel,也就无法调用Excel组件. 在此推荐第三方插件.NPOI ...
随机推荐
- MySQL NULL 使用带来的坑
MySQL 基础篇 三范式 MySQL 军规 MySQL 配置 MySQL 用户管理和权限设置 MySQL 常用函数介绍 MySQL 字段类型介绍 MySQL 多列排序 MySQL 行转列 列转行 M ...
- hdu 6143
题意:有m种字符,要求构造两段长度为n的字符串,其中这两段不能有相同的字符 枚举左边选了i种字符,右边可以选1,2....min(n,m-i)种字符 这样就把问题转化为用k种字符构造n长度的字符串的种 ...
- JDBC 复习2 存取mysql 大数据
大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据 mysql的大数据分为2种 blob 和 text ,没有cl ...
- Trie树(字典树)-题解 P2580 【于是他错误的点名开始了】
此题可以用STL中的map做,但是了解一下Trie树这个数据结构也是必须的. Trie树(又称字典树)有以下特点: 根节点不包含字符,除它之外的每一个节点都包含一个字符. 从根节点到某一节点,路径上经 ...
- springboot启动流程(十)springboot自动配置机制
所有文章 https://www.cnblogs.com/lay2017/p/11478237.html 正文 在第七篇文章中我们了解到,refresh过程将会调用ConfigurationClass ...
- oracle排序怎样弄成1 2 3 ,而不是 1 10 100
oracle表字段设置得值不是number,而是Varchar2时排序就会出现这种问题 这个时候排序的时候需要转类型排序: order by to_number(顺序号) asc
- Linux命令——gzip、zcat、bzip2、bzcat、tar
参考:Linux命令——ar 为什么文件要压缩? 当文件过大时,无论是本地做备份,复制都很麻烦,而且还浪费磁盘空间.如果用网络传输,大文件无疑会浪费大量宝贵带宽.文件压缩技术可以有效解决这个问题,但是 ...
- 【问题】This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
转载请注明出处:https://www.cnblogs.com/kelamoyujuzhen/p/9087725.html 这类问题归根到底就是软件源问题,Linux下安装软件不像windows.L ...
- API接口文档中将Swagger文档转Word 文档
一般的开发工作,尤其是API接口的开发工作,首先要有开发文档,接口说明文档 ok,后来开发完毕了 和页面联调,或者是和第三方联调的时候, 这个时候,SA systeam admin 就会开始直接让开发 ...
- java 接口方法超时异常处理 设置超时时间
原文:https://blog.csdn.net/coding_1994/article/details/87728374 使用线程池另起一个线程,可以使用 newFixedThreadPool() ...