对List中内容排序

11:18:34 list是有序的,有时要对list中的数据按照一定的排序规则进行排序

下面是在项目中遇到的让list中的数据按照时间前后排序

List<String> hintContentList = new ArrayList<String>();
        for (int i = 0; i < 31; i++) {
            String time = "2012-06-"+(31-i)+" 00:00:00";
            String s = "车牌号:123456  违章时间:"+time+" 违章地点:北京  违章事故:闯红灯";
            System.out.println(s);
            hintContentList.add(s);
        }
        for (int i = 0; i < 7; i++) {
            String time = "2012-07-"+(7-i)+" 00:00:00";
            String s = "车牌号:123456  违章时间:"+time+" 违章地点:北京  违章事故:闯红灯";
            System.out.println(s);
            hintContentList.add(s);
        }
        for (int i = 0; i < 7; i++) {
            String time = "2012-09-"+(7-i)+" 00:00:00";
            String s = "车牌号:123456  违章时间:"+time+" 违章地点:北京  违章事故:闯红灯";
            System.out.println(s);
            hintContentList.add(s);
        }
      //主要是这个方法的实现 Collections.sort(hintContentList,
new Comparator<String>() {         public int compare(String o1, String o2) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); int startPoint1 = o1.indexOf("违章时间:"); //System.out.println(startPoint1); int endPoint1 = o1.indexOf(" 违章地点:"); //System.out.println(endPoint1); int startPoint2 = o2.indexOf("违章时间:"); //System.out.println(startPoint2); int endPoint2 = o2.indexOf(" 违章地点:"); //System.out.println(endPoint2); Date d1 = null; Date d2 = null; try { d1 = format.parse(o1.substring(startPoint1+5,endPoint1-1)); System.out.println(d1); d2 = format.parse(o2.substring(startPoint2+5,endPoint2-1)); System.out.println(d2); } catch (ParseException e) { e.printStackTrace(); } return d1.compareTo(d2); } }); System.out.println(hintContentList);

 

这方法思路是我在网上看到的,由于自己以前没怎么用过,用代码测试了一下                                   发表时间  11:19:40

posted on 2012-06-20 11:21  Allon.Zhao  阅读(371)  评论(0)    收藏  举报

导航