基于对象字段对ArrayList进行sorting

可能重复:
sorting联系人的ArrayList

我将DataNode对象存储在ArrayListDataNode类有一个称为degree的整数字段。 我想从节点列表中以degree递增的顺序检索DataNode对象。 我该怎么做。

 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比较器对自定义类中的任何属性进行sorting。