1 回答

TA貢獻1871條經驗 獲得超13個贊
您正在尋找相似之處。如果比較兩個元素的結果為 0,則這些元素是相同的。否則他們不是。我改變了你的日常:
public int compare(ProjectService o1, ProjectService o2) {
Set<Category> o1CategorySet = o1.getCategories();
Set<Category> o2CategorySet = o2.getCategories();
int categoryMatch = 0;
double matchQuality = 0.0;
if ((o1CategorySet != null) && (o2CategorySet != null)) {
for (Category o1Category : o1CategorySet) {
for (Category o2Category : o2CategorySet) {
int match = o1Category.getName().compareTo(o2Category.getName());
if (match == 0) {
categoryMatch++;
} else {
categoryMatch--;
}
}
}
}
if (categoryMatch == 0) {
matchQuality++;
} else {
matchQuality--;
}
int scaleMatch = o1.getDifficultyScale().getEstimation().compareTo(o2.getDifficultyScale().getEstimation());
if (scaleMatch == 0) {
matchQuality++;
} else {
matchQuality--;
}
int amountMatch = o1.getAmount().compareTo(o2.getAmount());
if (amountMatch == 0) {
matchQuality++;
} else {
matchQuality--;
}
return (int) matchQuality;
}
這樣排序應該可以正常工作。
添加回答
舉報