Ответ 1
Измените класс DataNode так, чтобы он реализовал интерфейс Comparable.
public int compareTo(DataNode o)
{
return(degree - o.degree);
}
то просто используйте
Collections.sort(nodeList);
Возможный дубликат:
Сортировка списка адресов ArrayList
Я сохраняю DataNode
объекты в ArrayList
. Класс DataNode
имеет целое поле, называемое degree
.
Я хочу получить объекты DataNode
из nodeList в порядке возрастания degree
. Как я могу это сделать.
List<DataNode> nodeList = new ArrayList<DataNode>();
Измените класс DataNode так, чтобы он реализовал интерфейс Comparable.
public int compareTo(DataNode o)
{
return(degree - o.degree);
}
то просто используйте
Collections.sort(nodeList);
Используйте собственный компаратор:
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;
}
});
Вы можете использовать Bean Comparator для сортировки любого свойства в своем пользовательском классе.