Подтвердить что ты не робот

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

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

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

List<DataNode> nodeList = new ArrayList<DataNode>();
4b9b3361

Ответ 1

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

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

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

Collections.sort(nodeList);

Ответ 2

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

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;
     }
});

Ответ 3

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