Пытаюсь отсортировать ArrayList. Жалуется, что в api не поддерживается compare
. Как можно выполнить сортировку в более ранних версиях андроида?
Collections.sort(MyList, new Comparator<MyModel>() {
@Override
public int compare(MyModel o1, MyModel o2) {
return Boolean.compare(o1.isDeleted(),o2.isDeleted());
}
});
Метод:
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<MyModel>() {
@Override
public int compare(MyModel o1, MyModel o2) {
return Boolean.valueOf(o1.isDeleted()).compareTo(o2.isDeleted());
}
});
Или же можно написать свою реализацию сравнения, так как в данном случае это довольно просто.
Collections.sort(MyList, new Comparator<MyModel>() {
@Override
public int compare(MyModel o1, MyModel o2) {
return (o1.isDeleted() == o2.isDeleted()) ? 0 : (o1.isDeleted() ? 1 : -1);
}
});
Виртуальный выделенный сервер (VDS) становится отличным выбором
Имею три сущности: Database, Table, FieldСвязаны они отношением one-to-many