1 Collections.sort(list, new Comparator<String>() {
2 DateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
3 @Override
4 public int compare(String o1, String o2) {
5 try {
6 return f.parse(o1).compareTo(f.parse(o2));
7 } catch (ParseException e) {
8 throw new IllegalArgumentException(e);
9 }
10 }
11 });
在Collections.sort(list, new Comparator<String>() 中的list只需要将时间的集合放入。时间的格式可自定义。
现在的是对时间进行正序排序,如果要倒序则将return中的o1和02交换位置。
项目中完成实例:
1 public static String disposeFrequencePath(String path) {
2 String[] str = path.split(",");
3 //定义两个集合,一个是带时间类型,一个不带
4 ArrayList<String> list = new ArrayList<String>();
5 ArrayList<String> list1 = new ArrayList<String>();
6 for (int i = 0; i < str.length; i++) {
7 String one = str[i].split("#")[0];
8 String two = str[i].split("#")[1];
9 if(two.equals("1")) {
10 one = yesToday+" "+one;
11 }else if(two.equals("2")){
12 one = temToday+" "+one;
13 }else {
14 one = Today+" "+one;
15 }
16 list.add(one);
17 list1.add(one+"#"+two);
18 }
19 //对不带时间类型的集合进行排序
20 Collections.sort(list, new Comparator<String>() {
21 DateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
22 @Override
23 public int compare(String o1, String o2) {
24 try {
25 return f.parse(o1).compareTo(f.parse(o2));
26 } catch (ParseException e) {
27 throw new IllegalArgumentException(e);
28 }
29 }
30 });
31 String now = "";
32 //用已经排序好的时间对带时间类型的进行对比,获取排序好并且带时间类型
33 for (int i = 0; i < list.size(); i++) {
34 String aa = list.get(i);
35 String jj = "";
36 for (int j = 0; j < list1.size(); j++) {
37 String fir = list1.get(j).split("#")[0];
38 if(aa.equals(fir)) {
39 jj = list1.get(j).split("#")[1];
40 break;
41 }
42 }
43 now += aa.split(" ")[1]+"#"+jj+",";
44 }
45 return now;
46 }