次のようなクラスを作成します。
public class Person implements Comparable<Person> {
private String name;
private Date date;
public Person(String name, Date date) {
this.name = name;
this.date = date;
}
public String getName() {
return name;
}
public Date getDate() {
return date;
}
@Override
public int compareTo(Person o) {
return this.date.compareTo(o.getDate());
}
}
Person
次に、次のようにオブジェクトのリストを並べ替えることができます。
public static void main(String... args) {
LinkedList<Person> persons = new LinkedList<Person>();
persons.add(new Person("Name1", new Date())); //Specify different dates
persons.add(new Person("Name2", new Date()));
persons.add(new Person("Name3", new Date()));
Collections.sort(persons);
//Collections.sort(persons, Collections.reverseOrder()); //Reverse order
}
それでおしまい。
または別の代替手段は、次を使用することComparator
です:
Collections.sort(persons, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.getDate().compareTo(o2.getDate());
}
});
逆順:
Collections.sort(persons, Collections.reverseOrder(new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.getDate().compareTo(o2.getDate());
}
}));
Comparable<Person>
次に、個人クラスに実装する必要はありません。