對象類實現繼承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;ide
public String getAbilityID() {
return abilityID;
}this
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;
}get
public double getAverageByClassID() {
return averageByClassID;
}it
public void setAverageByClassID(double averageByClassID) {
this.averageByClassID = averageByClassID;
}io
public double getAverageByGradeID() {
return averageByGradeID;
}class
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);