我正在构建一个android项目,其中存储一些包含日期为字符串的细节,但现在我需要按日期对列表视图进行排序。我对如何做到这一点感到困惑。我完成了所有事情,但需要按日期排序列表。
以下是存储数据的概述。
我有像Person这样的类型的arraylist
ArrayList<Person> personDetails = new ArrayList<Person>();
Person类由几个变量组成,但我将限制为三个 1)名称 2)创建记录(日期) 3)地址
然后像personDetails.add(Person Object)一样添加到Person。
请指导我如何按日期对列表进行排序。
感谢您的时间。
答案 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);
}
});