Я пытаюсь использовать следующий код для сортировки ArrayList объекта по дате в порядке по убыванию:Android Collections.sort - не работает должным образом
List<GalleryBean> gallery_beans = this.galleryAdapter.getGalleryImageList();
Collections.sort(gallery_beans, new Comparator<GalleryBean>() {
public int compare(GalleryBean bean1, GalleryBean bean2) {
final int BEFORE = -1;
final int EQUAL = 0;
final int AFTER = 1;
/*
if(bean1.getMediaDate() > bean2.getMediaDate()){
Log.i("Collections.sort---->", "move bean1 name, long, date ---> ," +
bean1.getMediaName() + ", " + bean1.getMediaDate() + ", " + new Date(bean1.getMediaDate()) +
", AFTER bean2 name, long, date ---> "+ bean2.getMediaName() + ", " + bean2.getMediaDate() + ", " + new Date(bean2.getMediaDate()));
return AFTER;
} else if(bean1.getMediaDate() < bean2.getMediaDate()){
Log.i("Collections.sort---->", "move bean1 name, long, date ---> ," +
bean1.getMediaName() + ", " + bean1.getMediaDate() + ", " + new Date(bean1.getMediaDate()) +
", BEFORE bean2 name, long, date ---> "+ bean2.getMediaName() + ", " + bean2.getMediaDate() + ", " + new Date(bean2.getMediaDate()));
return BEFORE;
} else {
return EQUAL;
}
*/
return (int) (bean1.getMediaDate() - bean2.getMediaDate());
}
});
for (Iterator<GalleryBean> it = gallery_beans.iterator(); it.hasNext(); i++) {
GalleryBean gallery_bean = it.next();
Log.i("ITERATOR---->", "gallery_bean name ---> " + gallery_bean.getMediaName() + " gallery_bean long date ---> " + gallery_bean.getMediaDate() + " gallery_bean date ---> " + new Date(gallery_bean.getMediaDate()*1000));
}
Из моего исследования комментируемого из кода должен но, похоже, ничего не делает. Оставшаяся строка делает некоторую сортировку, но она неверна. Ниже приведен фрагмент вывода журнала из кода возврата (int) *. Я пытаюсь сортировать по дате в формате long unix. Буду признателен за любую оказанную помощь.
С уважением, JT_Dylan
11-24 21:03:47.407: I/ITERATOR---->(3949): gallery_bean name ---> IMG_20140815_140338.jpg gallery_bean long date ---> 1408125820000 gallery_bean date ---> Sat Sep 24 08:06:40 EST 46591
11-24 21:03:47.407: I/ITERATOR---->(3949): gallery_bean name ---> IMG_20140815_140408.jpg gallery_bean long date ---> 1408125850000 gallery_bean date ---> Sat Sep 24 16:26:40 EST 46591
11-24 21:03:47.407: I/ITERATOR---->(3949): gallery_bean name ---> IMG_20140815_152133.jpg gallery_bean long date ---> 1408130495000 gallery_bean date ---> Thu Nov 17 11:43:20 EDT 46591
11-24 21:03:47.407: I/ITERATOR---->(3949): gallery_bean name ---> IMG_20140815_152134.jpg gallery_bean long date ---> 1408130496000 gallery_bean date ---> Thu Nov 17 12:00:00 EDT 46591
11-24 21:03:47.407: I/ITERATOR---->(3949): gallery_bean name ---> IMG_20140815_152137.jpg gallery_bean long date ---> 1408130498000 gallery_bean date ---> Thu Nov 17 12:33:20 EDT 46591
11-24 21:03:47.409: I/ITERATOR---->(3949): gallery_bean name ---> IMG_20140815_152140.jpg gallery_bean long date ---> 1408130501000 gallery_bean date ---> Thu Nov 17 13:23:20 EDT 46591
11-24 21:03:47.409: I/ITERATOR---->(3949): gallery_bean name ---> IMG_20140815_152231.jpg gallery_bean long date ---> 1408130553000 gallery_bean date ---> Fri Nov 18 03:50:00 EDT 46591
11-24 21:03:47.409: I/ITERATOR---->(3949): gallery_bean name ---> IMG_20140815_153950.jpg gallery_bean long date ---> 1408131592000 gallery_bean date ---> Wed Nov 30 04:26:40 EDT 46591
11-24 21:03:47.411: I/ITERATOR---->(3949): gallery_bean name ---> IMG_20140815_154004.jpg gallery_bean long date ---> 1408131605000 gallery_bean date ---> Wed Nov 30 08:03:20 EDT 46591
11-24 21:03:47.411: I/ITERATOR---->(3949): gallery_bean name ---> IMG_20140815_154011.jpg gallery_bean long date ---> 1408131613000 gallery_bean date ---> Wed Nov 30 10:16:40 EDT 46591
11-24 21:03:47.411: I/ITERATOR---->(3949): gallery_bean name ---> IMG_20140815_154011_1.jpg gallery_bean long date ---> 1408131613000 gallery_bean date ---> Wed Nov 30 10:16:40 EDT 46591
11-24 21:03:47.414: I/ITERATOR---->(3949): gallery_bean name ---> IMG_20140815_162439.jpg gallery_bean long date ---> 1408134281000 gallery_bean date ---> Sat Dec 31 07:23:20 EDT 46591
11-24 21:03:47.414: I/ITERATOR---->(3949): gallery_bean name ---> IMG_20140815_162446.jpg gallery_bean long date ---> 1408134288000 gallery_bean date ---> Sat Dec 31 09:20:00 EDT 46591
Я не могу видеть, какие даты находятся в неправильном порядке. Кроме того, вы уверены, что хотите увеличить дату носителя на 1000 при создании нового объекта Date, поскольку год составляет 46591 – slipperyseal
Да, 1000 - миллисекунды, которые я получаю с сервера, поэтому я * 1000 для локальных файлов, чтобы они соответствовали , –
Если я это сделаю: System.out.println (новая дата (System.currentTimeMillis() * 1000)); Я получаю год 46869, поэтому я думаю, что время уже в миллисекундах. Ваш журнал выше показывает год как 46591. – slipperyseal