我想按自定義順序對列表進行排序,我已經按照stackOverflow鏈接進行了排序。 自定義順序必須如下:「ST,SIT,JDC」已在customOrder中使用數組列表完成。 並且來自數據庫的數據必須按照上述順序顯示在列表中,但問題在於,只有在數據庫中的數據與該列表完全匹配時纔可以使用,就像我擁有「ST」或「坐」,那麼它就可以完成這項工作。 但我從數據庫中獲取的數據是這樣的:如何根據自定義訂單對java列表進行排序
ST1,ST2,ST3,SIT1,SIT2,JDC發佈,JDC停止,JDC 10
這個代碼不工作對於我的數據,結果沒有錯誤,但它根本不排序數據。
這裏是代碼:
List<Environment> environments = environmentDAO.getAll();
final List<String> customOrder = Arrays.asList("ST", "SIT", "JDC");
Collections.sort(environments, new Comparator<Environment>() {
@Override
public int compare(final Environment o1, final Environment o2) {
Integer firstValue = Integer.valueOf(customOrder.indexOf(o1.getAcronym()));
Integer secondValue = Integer.valueOf(customOrder.indexOf(o2.getAcronym()));
int comparedTo = firstValue.compareTo(secondValue);
return comparedTo;
}
});
你的解釋似乎很不明確。提供樣本數據以及您希望樣本數據在排序後的樣子。 –
**你是什麼**自定義排序順序?請發佈預期結果。 **只要您提供正確的「Comporator」,任何**'集合'都可以用'Collections.sort()'排序。 –
對我來說沒關係。什麼不工作?它拋出異常嗎?訂單是否被顛倒? – NeplatnyUdaj