gpt4 book ai didi

android - 无法在android中使用比较器对数据进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:13:05 24 4
gpt4 key购买 nike

我正在尝试编写代码以按以下顺序对我的列表的数据进行排序,并且知道我必须使用比较器,但是我不知道如何在比较器中实现以下逻辑。一些帮助或例子会很棒!我很想听听你的意见。

final private ArrayList<BookItem> books = new ArrayList<>();

Collections.sort(books, compareBooks);

我希望列表排序的方式如下

显示顺序

  1. sort_order 编号越低,显示的项目越新
  2. start_date 的日期越往上显示
  3. ID 值越大,该项目将
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
}
};

最佳答案

我会按照你的排序属性列表一步一步地做

  1. sort_order 编号越低,显示的项目越新
  2. start_date的日期越靠前
  3. ID 值越大,该项目将是

一个

 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;
}
};

很可能我弄乱了至少一个属性的顺序,但这个想法应该很清楚。

关于android - 无法在android中使用比较器对数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55739794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com