关于排序:如何在Java中对字符串类型的日期进行排序

How to sort dates of type string in java

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

这是如何存储数据的概述。

我有一个类型为Person的arraylist

ArrayList personDetails = new ArrayList();

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

然后将其添加到Person中,如personDetails.add(Person Object)。

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

谢谢你的时间。


或者,如果您不想在Person类中实现Comparable接口,请执行以下操作:

1
2
3
4
5
6
7
8
9
10
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);
  }
});

在您的Person类中实现Comparable

1
2
3
4
5
6
7
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"替换为日期字符串的格式。


您可以在类Person中实现Comparable,并在compareTo方法中定义顺序。

1
2
3
4
5
6
public class Person implements Comparable<Person>{

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

然后只需致电:

1
Collections.sort(personDetails);

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