#java #android #сортировка #arraylist
Пытаюсь отсортировать ArrayList. Жалуется, что в api не поддерживается compare. Как можно выполнить сортировку в более ранних версиях андроида? Collections.sort(MyList, new Comparator() { @Override public int compare(MyModel o1, MyModel o2) { return Boolean.compare(o1.isDeleted(),o2.isDeleted()); } });
Ответы
Ответ 1
Метод: public static int compare (boolean x, boolean y) класса Boolean стал доступен в API level 19. На более ранних версиях можно использовать метод: public int compareTo (Boolean b) этого же класса, который доступен начиная с API level 1. Пример: boolean b1 = true; boolean b2 = false; int result = Boolean.valueOf(b1).compareTo(b2); В Вашем случае: Collections.sort(MyList, new Comparator() { @Override public int compare(MyModel o1, MyModel o2) { return Boolean.valueOf(o1.isDeleted()).compareTo(o2.isDeleted()); } }); Или же можно написать свою реализацию сравнения, так как в данном случае это довольно просто. Ответ 2
Collections.sort(MyList, new Comparator() { @Override public int compare(MyModel o1, MyModel o2) { return (o1.isDeleted() == o2.isDeleted()) ? 0 : (o1.isDeleted() ? 1 : -1); } });
Комментариев нет:
Отправить комментарий