原文链接: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 浅解的更多相关文章

  1. List集合中的对象按照某个字段去重实现

    package com.liying.banana.user; import java.util.ArrayList; import java.util.Comparator; import java ...

  2. list集合中指定字段去重

    在开发中,有时会需要指定字段去重,以下为实现方法: 假设有个房地产权的类,其中宗地代码ZDDM值重复,而我们在前端页面显示时,只需要一条数据,因为公共字段都一样: IEqualityComparer需 ...

  3. MySQL 查询重复的数据,以及部分字段去重和完全去重

    1.查找表中多余的重复记录(多个字段) select * from vitae a where (a.peopleId,a.seq) in  (select peopleId,seq from vit ...

  4. sql针对某一字段去重,并且保留其他字段

    今天客户提了一个小需求,希望我能提供一条sql语句,帮助他对数据中 _field 这个字段的值去重,并且保留其他字段的数据.第一反应是select distinct,但这种语句在对某个字段去重时,无法 ...

  5. php二维数组根据某个字段去重

    php的二维数组根据某个字段去重,在这默认为二维数组的结构是一样的,现在根据二维数组里的id字段去重,把id相同的重复的元素去掉 /** * 二维数组根据某个字段去重 * @param array $ ...

  6. list根据某个字段去重

    方法一:使用Set List<User> newList = new ArrayList<User>(); Set<String> set = new HashSe ...

  7. DataTable根据字段去重

    DataTable根据字段去重 最近需要对datatable根据字段去重,在网上搜了很多,找到了一个方法,代码如下 public static DataTable DistinctSomeColumn ...

  8. oracle 多字段去重查询

      oracle 多字段去重查询 CreationTime--2018年6月29日15点11分 Author:Marydon 1.情景展示 需要对表BASE_MRI_DEVICE的COMPNAME.F ...

  9. C#NPOI.RabbitMQ.EF.Attribute.HttpRuntime.Cache.AD域.List<T>根据指定字段去重.前端JQuery.Cache.I18N(多语言).data-xx(自定义属性)

    使用NPOI 操作Excel 个人使用的电脑基本默认安装Excel 操作起来 调用Excel的组件便可.如果是一台服务器.没有安装Excel,也就无法调用Excel组件. 在此推荐第三方插件.NPOI ...

随机推荐

  1. 1262: 谁不爱打牌(Java)

    WUSTOJ 1262: 谁不爱打牌 转自 断-肠-人的博客 Java代码在文末 Description BobLee最近在复习考研,但是他也喜欢打牌(有谁不爱玩牌呢?).但是作为一名ACMER,斗地 ...

  2. go 函数 命名返回值

    Go 的返回值可以被命名,并且像变量那样使用. 返回值的名称应当具有一定的意义,可以作为文档使用. 没有参数的 return 语句返回结果的当前值.也就是`直接`返回. 直接返回语句仅应当用在像下面这 ...

  3. SSM集成

    SSM集成   Spring和各个框架的整合   Spring目前是JavaWeb开发中最终的框架,提供一站式服务,可以其他各个框架整合集成   Spring整合方案   SSH Ssh是早期的一种整 ...

  4. Centos7安装gitlab11 学习笔记之备份恢复及邮箱配置

    一.备份 修改配置文件 vim /etc/gitlab/gitlab.rb 默认路径为 # gitlab_rails['backup_path'] = "/var/opt/gitlab/ba ...

  5. 解决https 请求过程中SSL问题

    最近一个项目中用到了https的请求,在实际调用过程中发现之前的http方法不支持https,调用一直报错. 查询了一下,添加几行代码解决问题. public string HttpPost(stri ...

  6. JDBC 复习3 存取Oracle大数据 clob blob

    1 目录结构记得导包咯 mysql oracle 2 代码,DBUtil工具类见前面的随笔博文 package dbex.mysql; import java.io.BufferedReader; i ...

  7. Down State Flush Feature

    Down State Flush Feature ========================================================== Citrix NetScaler ...

  8. 四大伪类,css鼠标样式设置,reset操作,静止对文本操作

    07.31自我总结 一.a标签的四大伪类 a:link{样式} 未访问时的状态(鼠标点击前显示的状态) a:hover{样式} 鼠标悬停时的状态 a:visited{样式} 已访问过的状态(鼠标点击后 ...

  9. 货币转换C

    描述 人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮ ...

  10. JS中的兼容性问题

    事件对象兼容        window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用.Firefox必须从源处加入event作 ...