Сортировка ArrayList на основе поля? - PullRequest
0 голосов
/ 22 ноября 2010

Привет У меня есть arrayList, в котором есть несколько объектов. Также у моих объектов есть два поля (1) name (2) cost Я хочу отсортировать этот arrayList с его полем стоимости. Есть ли какой-нибудь специальный метод, который делает это для меня, или я должен написать это сам? Также, если есть какой-то метод для этого, какова его временная сложность (O (n), ( O (NlogN?))

спасибо

Ответы [ 3 ]

4 голосов
/ 22 ноября 2010

Если вам нравится тип saftey (не использующий BeanComparator), то вам нужно написать собственный компаратор.

, например

Collections.sort(list, new Comparator<SomeType>() {
    public int compareTo(SomeType lhs, SomeType rhs) {
        return lhs.getCost().compareTo(rhs.getCost());
    }
});

Обратите внимание, что это не является нулевым (может стоить ноль?).

Другой вариант - использовать BeanComparator, но обязательно добавьте тест, который гарантирует, что сортировка всегда работает в случае изменения имени метода.

2 голосов
/ 22 ноября 2010

Вы можете использовать метод Collections.sort() для сортировки, если вы реализуете интерфейс Comparator для объектов, которые нужно сравнить.

0 голосов
/ 22 ноября 2010

Проверьте Bean Comparator для нескольких вариантов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...