按对象属性

时间:2015-05-01 04:16:52

标签: android collections

我有一个ArrayList,它包含一个复杂对象的集合 该对象有一个日期字段 我想从这个日期开始对我的列表进行排序。

在示例中

class Student{
 int ID;
 Date joinDate;

}

ArrayList <Student> students;

如何从joinDate

对此学生集合进行排序

3 个答案:

答案 0 :(得分:1)

在Student class中实现Comparable接口

然后你必须在学生班中重写以下方法

public int compareTo(Reminder o) {
        return getJoinDate().compareTo(o.getJoinDate());
}

然后使用内置的集合类排序方法按日期对对象进行排序

Collections.sort(students);

答案 1 :(得分:0)

实施Comparable和方法compareTo

public class Student implements Comparable<Student>{

    public int compareTo(Student otherStudent){
       // compare the two students here
    }

}

Collections.sort(studentsArrayList);

答案 2 :(得分:0)

写一个Comparator并将其传递给sort函数。它比改变数据类只是为了提供一种排序要好得多。

Collections.sort(students, new Comparator<Student>() {
   public int compare(Student e1, Student e2) {
       return e1.joinDate.compareTo(e2.joinDate);
   }
});

或者在java 8中:

Collections.sort(students, (e1, e2) -> e1.joinDate.compareTo(e2.joinDate));

有关详细信息,请查看此tutorial