| Код | import java.util.*;
public class MyObject implements Comparable<MyObject> { private Date date; private int i;
public MyObject(Date date, int i) { this.date = date; this.i = i; }
public Date getDate() { return date; }
public void setDate(Date date) { this.date = date; }
public int getI() { return i; }
public void setI(int i) { this.i = i; }
public int compareTo(MyObject o) { return date.compareTo(o.date); }
@Override public String toString() { return "MyObject[date = " + date + " , i = " + i + "]"; } } |
| Код | import java.util.*;
public class MyObjectList { public static final int SIZE = 5;
public static void main(String[] args) { List<MyObject> list = new LinkedList<MyObject>(); Random rnd = new Random(); long now = System.currentTimeMillis(); for(int i = 0; i < SIZE; i++) list.add(new MyObject(new Date(now + rnd.nextInt()), rnd.nextInt()));
System.out.println("Initial list = " + list);
Collections.sort(list);
System.out.println("Sorted list = " + list); } } |
При желании можно убрать из класса MyObjectList 11 строку, а строку 13 заменить на:
| Код | list.add(new MyObject(new Date(rnd.nextLong()), rnd.nextInt())); |
тогда даты будут генерироваться по всему доступному даипазону (только 43034567 год выглядит это немного дико).
P.S. Код предназначен для JDK 1.5 и старше. |