我有arraylist,文档号为No,创建日期,日期格式为String。我必须使用最新创建的日期对arrayList进行排序。提前谢谢。
日期(字符串)格式:2015年1月1日
答案 0 :(得分:0)
有很多StackOverflow答案可以帮助您。例如:
我还建议您调查Collections.sort
(并实施Comparator
)。
答案 1 :(得分:0)
您必须使用Collections.sort()方法并将列表作为参数传递。列表将根据其元素的自然顺序排序。您可以在此处获得更多信息:http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html
答案 2 :(得分:0)
public static void main(String[] args) {
List dateList = new ArrayList();
dateList.add(convertToString("1/1/2015"));
dateList.add(convertToString("2/1/2015"));
dateList.add(convertToString("1/2/2015"));
dateList.add(convertToString("3/1/2015"));
dateList.add(convertToString("1/4/2015"));
dateList.add(convertToString("4/1/2015"));
dateList.add(convertToString("2/2/2015"));
dateList.add(convertToString("2/4/2015"));
dateList.add(convertToString("4/4/2015"));
Collections.sort(dateList);
System.out.println(dateList);
}
public static String convertToString(String dateInString){
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date = null;
try {
date = formatter.parse(dateInString);
} catch (ParseException e) {
e.printStackTrace();
}
return formatter.format(date);
}
请看一下上面的代码,我认为它应该可以解决您的问题。
答案 3 :(得分:0)
这是使用apache-commons DateUtils
实现它的一种非常简单的方法。
List<String> dates = new ArrayList<String>();
dates.add("3/1/2015");
dates.add("1/4/2015");
dates.add("1/1/2015");
final String[] formats = new String[] { "dd/MM/yyyy" };
Collections.sort(dates, new Comparator<String>() {
@Override
public int compare(String d1, String d2) {
try {
Date date1 = DateUtils.parseDate(d1, formats);
Date date2 = DateUtils.parseDate(d2, formats);
return date1.compareTo(date2);
} catch (ParseException e) {
// do something to treat this error
return 1;
}
}
});