我的問題是關於如何使用自定義對象對其中一個屬性進行排序,但是從自定義條件開始。使用自定義起始點排序ArrayList對象的屬性
讓我解釋一下比較好,這裏是我的代碼:
public static void sortArrayListByProperty(ArrayList colorList){
Collections.sort(colorList, new Comparator(){
public int compare(Object emp1, Object emp2){
int intValue1 = ((ColorCounter)emp1).getIntColorValue();
int intValue2 = ((ColorCounter)emp2).getIntColorValue();
if(intValue1 < intValue2)
return 1;
else if(intValue1 > intValue2)
return -1;
else
return 0;
}
});
}
這將我的ArrayList從更大的排序,以更小。
但我想要的是從我將指定的起始號碼排序我的ArrayList。
例如,如果ArrayList包含
5 3 9 1 14
讓說,我想數字開始從3然後我需要有
3 5 9 14 1
我希望是足夠多的清晰......
是有可能嗎?
@Joachim紹爾
謝謝,我編輯你的代碼一點點,改變返回值和它的工作!
編輯的代碼:
if (cv1 >= threshold && cv2 < threshold) {
return -1;
} else if (cv2 >= threshold && cv2 < threshold) {
return -1;
} else if (cv1 < cv2) {
return 1;
} else if (cv1 > cv2) {
return 1;
} else {
return 0;
}
測試例如:
16777215
16448250
15790320
4013373
排序由15790320:
15790320
16448250
16777215
4013373
許多解決方案,但我建議你使用簡單的模式,如混合過濾器和排序或混合過濾器和排序和合並? – Luca
爲什麼1會比14大?每個小於3的數字是否會大於3以上的數字?兩個小於3的數字如何比較? – Thomas
如果您在此列表中添加2,8,10,會發生什麼情況?這些輸入之間的邏輯差異是什麼?我認爲你最好將它們添加到期望的位置 – mprabhat