基于对象字段对ArrayList进行排序

时间:2010-11-01 03:52:06

标签: java

  

可能重复:
  Sorting an ArrayList of Contacts

我将DataNode个对象存储在ArrayList中。 DataNode类有一个名为degree的整数字段。 我想以DataNode的递增顺序从nodeList中检索degree个对象。我怎么能这样做。

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

3 个答案:

答案 0 :(得分:164)

使用自定义比较器:

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

答案 1 :(得分:59)

修改DataNode类,使其实现Comparable接口。

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

然后只需使用

Collections.sort(nodeList);

答案 2 :(得分:0)

您可以使用Bean Comparator对自定义类中的任何属性进行排序。