Вопрос:

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

java

122728 просмотра

3 ответа

10949 Репутация автора

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

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

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

Ответы (3)


170 плюса

61162 Репутация автора

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

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 плюса

284184 Репутация автора

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

Автор: camickr Размещён: 01.11.2010 04:11

61 плюса

4448 Репутация автора

Решение

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

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

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

Collections.sort(nodeList);
Автор: blitzkriegz Размещён: 01.11.2010 04:34
Вопросы из категории :
32x32