import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang.time.DateUtils;
public class ArraySortTest {
private static DateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
public static void main(String[] args) {
//时间
Date date = new Date(),date1 = new Date(),date2 = new Date();
date = DateUtils.addDays(date, 1);
date1 = DateUtils.addDays(date1, 2);
date2 = DateUtils.addDays(date2, 3);
List<Date> listDate = new ArrayList<Date>();
listDate.add(date);
listDate.add(date1);
listDate.add(date2);
List<String> listStr = new ArrayList<String>();
for (Date date3 : listDate){
listStr.add(dateFormat.format(date3));
}
System.out.println(listStr.toString());
Collections.sort(listDate, new Comparator<Date>(){
@Override
public int compare(Date o1,Date o2){
int value = o1.after(o2) ? -1 : 1;
System.out.println(" date: " + value);
return value;
}
});
List<String> listStr1 = new ArrayList<String>();
for (Date date3 : listDate){
listStr1.add(dateFormat.format(date3));
}
System.out.println(listStr1.toString());
//数字
int a = 1,b=2,c=3;
List<Integer> listInt = new ArrayList<Integer>();
listInt.add(a);
listInt.add(b);
listInt.add(c);
Collections.sort(listInt, new Comparator<Integer>(){
@Override
public int compare(Integer o1, Integer o2) {
int value = o1>o2 ? 1 : -1;
System.out.println(" int: " + value);
return value;
}
});
System.out.println(listInt.toString());
}
}
结果:
[2012年03月27日, 2012年03月28日, 2012年03月29日]
date: 1
date: 1
date: 1
[2012年03月29日, 2012年03月28日, 2012年03月27日]
int: -1
int: -1
[1, 2, 3]
在定制排序的时候,返回 -1 是顺序排序 1 是倒序 记下,有个时候容易搞混。