Как отсортировать массив данных с сортировкой числовых значений с помощью компаратора в Android? - PullRequest
0 голосов
/ 12 октября 2018

В настоящее время я сортирую данные с помощью следующего компаратора, но я добавил значение, называемое sortOrder, в MyItem и думаю о том, чтобы также использовать "sortOrder" для упорядочивания моих данных.Например, данные по умолчанию для каждого MyOtem 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;
    };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...