Я пытаюсь отсортировать массив объектов по определенному значению внутри объекта. Как лучше всего сделать это? Должен ли я использовать Collections.sort () с каким-то компаратором?
Я пытаюсь отсортировать список объектов по значению с плавающей запятой, которое они содержат в одной из переменных.
РЕДАКТИРОВАТЬ: Это то, что у меня есть:
public class CustomComparator implements Comparator<Marker> {
@Override
public int compare(Mark o1, Mark o2) {
return o1.getDistance().compareTo(o2.getDistance());
}
}
сообщение об ошибке: Невозможно вызвать compareTo (double) для примитивного типа double.
Это потому, что компаратор не может вернуть ничего, кроме определенного типа?
java
android
sorting
collections
comparator
Джеймс андресакис
источник
источник
Ответы:
Вы должны использовать Comparable вместо Comparator, если сортировка по умолчанию - это то, что вы ищете.
Смотрите здесь, это может помочь - когда класс должен быть Comparable и / или Comparator?
Попробуй это -
источник
Следуйте этому коду, чтобы отсортировать любой ArrayList
источник
Я думаю это поможет тебе лучше
источник
Теперь не нужно заниматься боксом (т.е. не нужно создавать
OBJECT
с использованием нового оператора, используйте valueOf, установленное с compareTo of Collections.Sort ..)1) По возрастанию
1) По убыванию
источник
«Android-java» никоим образом не отличается от «нормальной java», так что да,
Collections.sort()
было бы неплохо.источник
Как пользоваться:
источник
Вы можете сравнить две строки, используя this.
А теперь создайте класс ContactData.
Вот список контактов:
источник
Либо создайте объект,
Comparator
который может сравнивать ваши объекты, либо, если все они являются экземплярами одного и того же класса, вы можете реализовать этот классComparable
. Затем вы можете использовать Collections.sort () для фактической сортировки.источник
compareTo()
-Метод , где вы делаете сравнение. Немного прибегая к помощи дал несколько подробных примеров о том , как использовать его, вот один из них: javadeveloper.co.in/java-example/java-comparable-example.htmlКласс модели:
Теперь установите данные в ArrayList
Теперь отсортировать ArrayList
Резюме: он будет сортировать ваши данные по дате
источник
Для Kotlin вы можете использовать эту функцию
и просто вызовите ее в
activity
илиfragment
наисточник
У меня есть список, который показывает информацию обо всех клиентах, имена которых я сортирую, используя этот настраиваемый класс компаратора. У них есть дополнительные лерреты, кроме английских букв, которыми я управляю с помощью этого setStrength (Collator.SECONDARY)
источник
Для Котлина это очень просто!
listToBeSorted.sortBy { it.distance }
источник