郑永安
2023-06-19 59e91a4e9ddaf23cebb12993c774aa899ab22d16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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;
    }
 
}