如何在java中对字符串类型的日期进行排序

时间:2014-09-01 12:50:07

标签: java sorting arraylist

我正在构建一个android项目,其中存储一些包含日期为字符串的细节,但现在我需要按日期对列表视图进行排序。我对如何做到这一点感到困惑。我完成了所有事情,但需要按日期排序列表。

以下是存储数据的概述。

我有像Person这样的类型的arraylist

ArrayList<Person> personDetails = new ArrayList<Person>();

Person类由几个变量组成,但我将限制为三个 1)名称 2)创建记录(日期) 3)地址

然后像personDetails.add(Person Object)一样添加到Person。

请指导我如何按日期对列表进行排序。

感谢您的时间。

3 个答案:

答案 0 :(得分:1)

您可以在班级Comparable中实施Person,并使用compareTo方法定义订单。

public class Person implements Comparable<Person>{

    public int compareTo(Person comparePerson) {
        //logic here
    }
}

然后打电话:

Collections.sort(personDetails);

好教程:http://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/

答案 1 :(得分:1)

Comparable课程中实施Person

public class Person implements Comparable<Person> {

    public int compareTo(Person person) {
        SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");
        return sdf.parse(this.dateString).compareTo(sdf.parse(person.dateString));
    }
}

"YYYY-MM-dd"替换为日期字符串的格式。

答案 2 :(得分:1)

如果您不想在类中实施 可比较 界面,请执行此类操作:

List<Personne> personDetails = new ArrayList<Personne>();
Collections.sort(personDetails, new Comparator<Personne>()
{
  public int compare(Person o1, Person o2) {
    SimpleDateFormat sdf = new SimpleDateFormat("YOUR-DATE-PATTERN");
    Date d1 = sdf.parse(o1.getDateAsString());
    Date d2 = sdf.parse(o2.getDateAsString());
    return d1.compareTo(d2);
  }
});