package com.gk.firework.Domain.Vo; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.lang.reflect.Field; import java.util.Comparator; public class SortData { public List sortByInt(List list, final String param ,Byte order){ //自定义Comparator对象,自定义排序 Comparator c = new Comparator() { @Override public int compare(Object o1, Object o2) { try { Field field1 = o1.getClass().getDeclaredField(param); Field field2 = o2.getClass().getDeclaredField(param); field1.setAccessible(true); field2.setAccessible(true); // if(null == field1.get(o1) || null == field2.get(o2)){ // return 0; // } if((Integer)field1.get(o1)<(Integer)field2.get(o2)){ return 1; }else if((Integer)field1.get(o1)>(Integer)field2.get(o2)){ 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; } public List Pagination(Integer pageNum, Integer pageSize, List dataList) { Integer totalCount = dataList.size(); List result = new ArrayList<>(); if (pageSize != null) { // 默认页面大小为10 pageSize = pageSize > 0 ? pageSize : 10; } if (pageNum != null) { pageNum = pageNum > 0 ? pageNum : 0; } Integer beginindex = (pageNum-1)*pageSize; Integer endindex = pageNum * pageSize < totalCount ? pageNum * pageSize : totalCount; result = dataList.subList(beginindex,endindex); return result; } }