当前,我正在使用以下比较器对数据进行排序,但是我在MyItem中添加了名为sortOrder的值,并考虑也使用“ sortOrder”对数据进行排序。 例如,每个MyItem sortOrder的每个默认数据的值为“ 100”。 sortOrder数据越小 优先级越高。如果数据为1,则为最大,为2秒为3、4,依此类推。但是,如果所有MyItem ArrayList具有与“ 100”相同的等效值,然后将根据以下比较器进行排序。
我想知道的是如何添加条件或比较器以使用sortOrder对数据进行排序,如下所示? 一些例子或技巧会很可爱!我很想听听您的消息。
private final ArrayList<MyItem> mChildren = new ArrayList<>();
Collections.sort(mChildren, mComparator); //Sorting with this comparator
// MyItem具有sortOrder,我也想使用此值,但我不知道
public Comparator<MyItem> myComparator = (item1, item2) -> {
if (item1.typeInt == MyItemModel.TYPE_BOOK && item2.typeInt != MyItemModel.TYPE_BOOK) {
return -1;
} else if (item1.type != MyItemModel.TYPE_BOOK && item2.type == MyItemModel.TYPE_BOOK) {
return 1;
} else if (item1.type == MyItemModel.TYPE_MAGAZINE && item2.type != MyItemModel.TYPE_MAGAZINE) {
return -1;
} else if (item1.type != MyItemModel.TYPE_MAGAZINE && item2.type == MyItemModel.TYPE_MAGAZINE) {
return 1;
}
return (Integer.compare((int) item1.id, (int) item2.id)) * -1;
};