对比新文件 |
| | |
| | | package com.gk.firework.Domain.Vo; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Collections; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.lang.reflect.Field; |
| | | import java.util.Comparator; |
| | | |
| | | |
| | | public class SortTime { |
| | | public List<?> sortByInt(List<?> list, final String param ,Byte order){ |
| | | //自定义Comparator对象,自定义排序 |
| | | Comparator c = new Comparator() { |
| | | @Override |
| | | public int compare(Object o1, Object o2) { |
| | | try { |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | Field field1 = o1.getClass().getDeclaredField(param); |
| | | Field field2 = o2.getClass().getDeclaredField(param); |
| | | field1.setAccessible(true); |
| | | field2.setAccessible(true); |
| | | Date date1 = null; |
| | | Date date2 = null; |
| | | try { |
| | | date1 = (Date)field1.get(o1); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | date2 = (Date) field2.get(o2); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | if((int)date1.getTime() < (int) date2.getTime()){ |
| | | return 1; |
| | | }else if((int)date1.getTime() > (int) date2.getTime()){ |
| | | return -1; |
| | | }else { |
| | | return 0; |
| | | } |
| | | //注意!!返回值必须是一对相反数,否则无效。jdk1.7以后就是这样。 |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return 1; |
| | | } |
| | | }; |
| | | if(order == 1){ |
| | | Collections.sort(list, c); |
| | | }else { |
| | | Collections.sort(list, c.reversed()); |
| | | } |
| | | |
| | | return list; |
| | | } |
| | | |
| | | } |