Android 按日期排序具有日期成员的bean数组

Android 按日期排序具有日期成员的bean数组,android,sorting,comparator,Android,Sorting,Comparator,我有一个像这样的bean类 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() { .... } .... .... } 现在在活动中,我正在

我有一个像这样的bean类

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 void排序日期(){
List listIB=new ArrayList();

对于(int i=0;i您必须比较日期而不是字符串(publish_date)。因此,在方法compare()中,您可以将字符串日期解析为日期对象(例如,通过SimpleDataFormat),并通过日期比较这两个日期。compare to

非常感谢“207”,它可以工作,您还了解了我的SimpleDataFormatYou是受欢迎的。一点建议:您还可以通过ItemBean类实现Comparable。然后您重写compareTo()方法,然后您可以调用Collections.sort(yourList)。因此您的代码更“干净”,因为比较不是您活动的一部分(public static Comperator…)
public static Comparator<ItemBean> compareDate = new Comparator<ItemBean>() {
    public int compare(ItemBean one, ItemBean other) {
        return one.publish_date.compareTo(other.publish_date);
    }
}