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 ...
随机推荐
- Python——方法
方法是类或者对象行为特征的抽象,方法其实也是函数,它的定义方式.调用方式与函数都很相似. 一.类调用实例方法 先来看一段代码: # 定义全局空间test函数 def test(): print ('全 ...
- c语言 c++程序运行过程
我们写好的 .c .cpp 文件在计算机中如何运行. 一个.c 文件 .cpp 文件 首先经过 预编译形成 . i 文件 在这个过程中 主要处理程序中的# 以及进行宏替换 然后编译 ...
- Python使用datetime来判断近七天
目录 strptime 使用strptime来格式化字符串 datetime.datetime.strptime("2019-10-02", "%Y-%m-%d" ...
- pycharm使用pylint
# 与能查到的多数博文做法不太一样,自认为这样更简单有效 1. 下载插件 https://plugins.jetbrains.com/plugin/11084-pylint 2. 从磁盘安装插件 注意 ...
- 数据库开启最小补充日志hang住
一.场景说明: 客户环境需要部署OGG,同事在数据库中执行添加最小补充日志,会话Hang住 二.环境测试 本次测试环境进行模拟,添加最小补充日志的操作,怎么会被Hang住呢? 2.1 模拟会话hang ...
- Nginx 不支持WebSocket TCP
proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
- Junit 学习1 junit的简单使用
package junit; import java.sql.Connection; import java.sql.SQLException; import org.junit.Test; impo ...
- # 机器学习算法总结-第八天(SKlearn中的kmeans/随机森林)
随机森林 这篇好好看看怎么调参的 我调的最佳参数如下,准确率为0.8428671546929973,细节看上篇文章: alg = RandomForestClassifier(n_estimators ...
- golang的select实现原理剖析
写在最前面 select为golang提供了多路IO复用机制,和其他IO复用一样,用于检测是否有读写事件是否ready. 本文将介绍一下golang的select的用法和实现原理. 实现原理 gola ...
- zookeeper:2
单机环境下安装: 下载地址:http://apache.fayea.com/zookeeper/stable/ 解压zookeeper :tar -zxvf zookeeper-3.4.10.tar. ...