对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) 收藏 举报
浙公网安备 33010602011771号