сортировка по дате массив бинов с датой - PullRequest
0 голосов
/ 28 марта 2012

у меня класс бобов, как

public class ItemBean{
    String item_id, item_title, image_url, link_url, description, publish_date,
        in_app_date, sub_section_id, type, duration, orig_url, sync;
    public ItemBean() {  ....  }
    ....
    ....
}

сейчас в работе, я получаю значения itemBeans и создаю список; использовать в компараторе. Вы можете увидеть мой код;

public void sortDate() {
    List<ItemBean> listIB = new ArrayList<ItemBean>();
    for(int i=0; i<DispLibActivity.itemListVect.size(); i++)
    {
        listIB.add(DispLibActivity.itemListVect.get(i));
    }
    //      Sorting  Call
    Collections.sort(listIB, ItemSimpleListActivity.compareDate);
    itemBeans = new ItemBean[listIB.size()];
    for (int i=0; i<listIB.size(); i++)
    {
        itemBeans[i] = listIB.get(i);
        System.out.println("Date: "+itemBeans[i].publish_date);
    }
}

Мой компаратор

public static Comparator<ItemBean> compareDate = new Comparator<ItemBean>() {
    public int compare(ItemBean one, ItemBean other) {
        return one.publish_date.compareTo(other.publish_date);
    }
}

Но я получаю отсортированную коллекцию следующим образом: - Дата: 1-1-2009 08:00:00 CST Дата: 10-1-2011 08:00:00 CST Дата: 10-1-2011 08:00:00 CST Дата: 12-2-2010 08:00:00 CST Дата: 4-1-2009 08:00:00 CST Дата: 4-18-2011 08:00:00 CST Дата: 4-6-2010 08:00:00 CST Дата: 4-6-2010 08:00:00 CST Дата: 9-20-2011 08:00:00 CST Дата: 9-20-2011 08:00:00 CST Дата: 9-20-2011 08:00:00 CST

Что не является правильным порядком сортировки.

Может кто-нибудь сказать мне альтернативные способы или что за ошибка в этом коде?

1 Ответ

1 голос
/ 28 марта 2012

Вы должны сравнивать даты, а не строки (publish_date). Таким образом, в методе Compare () вы анализируете дату String в объект Date (например, через SimpleDateFormat) и сравниваете эти две даты через Date.compareTo

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