JAVA list對象排序加去重問題

對象類實現繼承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);

相關文章
相關標籤/搜索