Сортировать ArrayList на основе поля объекта

java

122728 просмотра

3 ответа

Возможный дубликат:
сортировка массива контактов

Я храню DataNodeобъекты в ArrayList. DataNodeКласс имеет целое поле , называемое degree. Я хочу получить DataNodeобъекты из nodeList в порядке возрастания degree. Как я могу это сделать.

List<DataNode> nodeList = new ArrayList<DataNode>();
Автор: devnull Источник Размещён: 13.11.2019 11:30

Ответы (3)


61 плюса

Решение

Измените класс DataNode, чтобы он реализовывал сопоставимый интерфейс.

public int compareTo(DataNode o)
{
     return(degree - o.degree);
}

тогда просто используйте

Collections.sort(nodeList);
Автор: blitzkriegz Размещён: 01.11.2010 04:34

170 плюса

Используйте собственный компаратор:

Collections.sort(nodeList, new Comparator<DataNode>(){
     public int compare(DataNode o1, DataNode o2){
         if(o1.degree == o2.degree)
             return 0;
         return o1.degree < o2.degree ? -1 : 1;
     }
});
Автор: Mark Elliot Размещён: 01.11.2010 04:08

0 плюса

Вы можете использовать Bean Comparator для сортировки по любому свойству в вашем пользовательском классе.

Автор: camickr Размещён: 01.11.2010 04:11
Вопросы из категории :
32x32