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;
|
}
|
|
}
|