对象类实现继承Comparable接口重写compareTo方法实现排序功能,重写equals方法实现去重功能(根据ID去重)
public class TestAbilityAnalyze implements Comparable<TestAbilityAnalyze> {
private String abilityID;
/**
* 能力名称
*/
private String abilityName;
/**
* 个人正确率
*/
private double accuracy;
/**
* 班级正确率
*/
private double averageByClassID;
/**
* 年级正确率
*/
private double averageByGradeID;

public String getAbilityID() {
return abilityID;
}

public void setAbilityID(String abilityID) {
this.abilityID = abilityID;
}

public String getAbilityName() {
return abilityName;
}

public void setAbilityName(String abilityName) {
this.abilityName = abilityName;
}

public double getAccuracy() {
return accuracy;
}

public void setAccuracy(double accuracy) {
this.accuracy = accuracy;
}

public double getAverageByClassID() {
return averageByClassID;
}

public void setAverageByClassID(double averageByClassID) {
this.averageByClassID = averageByClassID;
}

public double getAverageByGradeID() {
return averageByGradeID;
}

public void setAverageByGradeID(double averageByGradeID) {
this.averageByGradeID = averageByGradeID;
}

@Override
public int compareTo(TestAbilityAnalyze o) {
// TODO Auto-generated method stub
return (int) (this.getAccuracy() - o.getAccuracy());
}

public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof Test))
return false;
TestAbilityAnalyze other = (TestAbilityAnalyze) obj;
if (abilityID == null) {
if (other.abilityID == null)
return true;
else
return false;
} else {
if (abilityID.equals(other.abilityID))
return true;
else
return false;
}
}
}

根据正确率排序,然后使用set去重
Collections.sort(analyzes);
Set<TestAbilityAnalyze> result = new TreeSet<>((o1, o2) -> o1.getAbilityID().compareTo(o2.getAbilityID()));
result.addAll(analyzes);

JAVA list对象排序加去重问题的更多相关文章

  1. [个人原创]关于java中对象排序的一些探讨(三)

    这篇文章由十八子将原创,转载请注明,并标明博客地址:http://www.cnblogs.com/shibazijiang/ 对对象排序也可以使用Guava中的Ordering类. 构造Orderin ...

  2. java对对象排序

    一.前言 有时我们需要对类按照类中的某一个属性(或者多个属性)来对类的对象进行排序,有两种方法可以实现,一种方法是类实现Comparable<T>接口,然后调用Collections.so ...

  3. java 通用对象排序

    一个排序类,一个排序util? no.no.no…… 使用反射机制,写了一个通用的对象排序util,欢迎指正. 实体类: package entity; public class BaseTypeEn ...

  4. [个人原创]关于java中对象排序的一些探讨(一)

    有的时候我们需要将自己定义的对象,有序输出.因为一般我们程序的中间结果需要存储在容器里,那么怎样对容器中的对象按照一定次序输出就是程序员经常需要考虑的问题.本片文章探讨了怎样有序化输出容器中的对象的问 ...

  5. [个人原创]关于java中对象排序的一些探讨(二)

    2.  使用Collections.sort()方法 Collections类中提供了诸多静态方法,诸如addAll(),max()等等.当自己相对Collection接口下的类处理的时候,可以看看这 ...

  6. Java对象排序

    java实现对象比较,可以实现java.lang.Comparable或java.util.Comparator接口 //Product.java import java.util.Date; //p ...

  7. Java - 简单的对象排序 - Comparator

    注:对象排序,就是对对象中的某一字段进行比较,以正序或倒序进行排序. 例: 需要排序的对象: public class Person { public int age; public String n ...

  8. Java集合中对象排序

    集合中的对象排序需求还是比較常见的.当然我们能够重写equals方法,循环比較:同一时候Java为我们提供了更易使用的APIs.当须要排序的集合或数组不是单纯的数字型时,通常能够使用Comparato ...

  9. java对一个int数组进行排序、去重

    思路: 1.使用 HashSet 进行去重 2.将 HashSet 变为 TreeSet 3.使用 TreeSet 进行排序 4.将 Set 变为 Integer 数组 5.将 Integer 数组变 ...

随机推荐

  1. Project Tango Explorer

    https://sensortower.com/android/ie/projecttango-google/app/project-tango-explorer/com.projecttango.t ...

  2. 好用的开关按钮——switchbutton

    1.简介 GitHub地址:https://github.com/zcweng/SwitchButton gradle:  repositories { mavenCentral() jcenter( ...

  3. java分页实例Demo

    前两天测试过的一个分页的demo,在网上看到的,挺好的,就写了下来. 分页也是web里面必须的,有使用的价值. demo文件打包上传了,链接:http://pan.baidu.com/s/1o6sME ...

  4. linux的定制和发布(一)

    如果总是仰视高山,就会挫伤我们攀登的勇气,使我们固步自封.我们需要做的就 是迈开自己的脚步,踏出第一步,let's go!       Linux的裁剪一般有三种方法: 1.以一个已经安装好的系统为基 ...

  5. sqlcmd 执行SQL语句或没有足够的内存来执行脚本

    win+r命令提示框里面输入cmd sqlcmd -S . -U username -P password -d database -i url -S 数据库地址 -U 登录名称 -P 密码 -d 数 ...

  6. Cesium Language (CZML) 入门2 — CZML Content(CZML的内容)

    原文:https://github.com/AnalyticalGraphicsInc/cesium/wiki/CZML-Content 以下是描述CZML文档或者流中可能存在的内容.要解释CZML文 ...

  7. 【题解】 洛谷P2340 奶牛会展

    传送门 重新开始打代码Day1 第一眼看感觉不对啊,这道题目好像空间开不下,是不是不能dp... 后来想到了一个思路,他要求的是\(dp_{i,j,k}=j+k\),然后这样子不是很奇怪吗? 直接一维 ...

  8. k8s 入门系列之介绍篇

    •Kubernetes介绍1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器的快速轻量 - 完整的生态环境2.什么是ku ...

  9. RFID

    RFID 物联网必不可少会接触到RFID,国内比较常见的RFID读卡驱动芯片有两款.一款是NXP的RC522这系列的,非常稳定,当然也相对较贵,另一款是复旦微电子的FM1702系列,国产的便宜没得说, ...

  10. 【OCP认证12c题库】CUUG 071题库考试原题及答案(27)

    27.choose two The SQL statements executed in a user session are as follows: SQL> CREATE TABLE pro ...