我正在尝试按以下顺序编写代码来为我的列表排序数据并知道我必须使用比较器,但是我不知道如何在比较器中实现以下逻辑。一些帮助或示例将是伟大的!我很乐意听到你的消息。
final private ArrayList<BookItem> books = new ArrayList<>();
Collections.sort(books, compareBooks);
我希望列表的排序方式如下
显示顺序
private Comparator<BookItem> compareBooks = (o1, o2) -> {
if (o1.sort_order == BookItem.ORDER && o2.sort_order != BookItem.ORDER) {
return -1;
} else if (o1.start_date != BookItem.START && o2.start_date == BookItem.START) {
return 1;
} else if (o1.ID == BookItem.ID && o2.ID == BookItem.ID) {
return 0
}
};
我会像你的排序属性列表一样一步一步地做
一个
private Comparator<BookItem> compareBooks = (o1, o2) -> {
int result =o1.sort_order - o2.sort_order
if(0==result){
result=o1.start_date.compareTo(o2.start_date);
}
if(0==result){
result=o1.ID-o2.ID;
}
};
我很可能搞砸了你的至少一个属性的顺序,但这个想法应该是明确的。