сортировка архива в порядке возрастания - PullRequest
1 голос
/ 12 января 2010

У меня есть массив объектов, каждый из которых содержит свойство год / месяц / день / час. в конечном итоге я пытаюсь создать новый многомерный массив, который содержит группу каждого объекта, увеличивая час. так, например, пример окончательного массива, который я хотел бы:

array: [0]
            [0] 01:04:00, 4-10-09
            [1] 01:15:00, 4-10-09
       [1]
            [0] 02:25:00, 4-10-09
       [2]
            [0] 06:14:00, 4-10-09
            [1] 06:27:00, 4-10-09
       [3]   
            [0] 04:03:00, 4-11-09
            [1] 04:11:00, 4-11-09

Мне трудно понять, как правильно сортировать arraylists в java. Как я могу отсортировать каждый раздел (год, месяц, день, час) в массиве по возрастанию, прежде чем вставлять их в окончательный массив?

спасибо.

Ответы [ 3 ]

2 голосов
/ 12 января 2010

Чтобы отсортировать коллекцию, вы можете сделать такой вызов:

List<MyDate> dates = ... 
Collections.sort(dates);

Класс MyDate должен будет реализовать интерфейс Comparable, для чего потребуется реализация метода int compareTo (object o).

В методе «CompareTo» вы можете написать код, который будет вызывать метод получения для года, месяца и т. Д., Пока он не выяснит, меньше ли текущий объект, равен или большечем объект "o", передаваемый в метод CompareTo.

Пример:

public int compareTo(Object o) {
    MyDate otherDate = (MyDate) o;
    int thisYear = this.getYear();
    int otherYear = otherDate.getYear();
    if (thisYear < otherYear) return -1;
    if (thisYear > otherYear) return 1;
    // Now try the month, then day etc
}
2 голосов
/ 12 января 2010

Проверить компараторы http://java.sun.com/j2se/1.4.2/docs/api/java/util/Comparator.html

Comparator - это интерфейс с методом сравнения (Object1, Object2), в котором можно сравнивать даты Затем вы определяете свой собственный объект компаратора, который реализует компаратор, а затем используете Collections.sort (Arraylist, компаратор)

0 голосов
/ 12 января 2010

Реализуйте сопоставимый интерфейс для вашего объекта времени / даты. Тогда это будет так же просто, как делать Collections.sort

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...