java list 分页,方便分批处理整个list的数据
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
import
java.util.Arrays;
import
java.util.Collections;
import
java.util.List;
public
class
ListPageUtil<T> {
/**
* 每页显示条数
*/
private
int
pageSize;
/**
* 总页数
*/
private
int
pageCount;
/**
* 原集合
*/
private
List<T> data;
public
ListPageUtil(List<T> data,
int
pageSize) {
if
(data ==
null
|| data.isEmpty()) {
throw
new
IllegalArgumentException(
"data must be not empty!"
);
}
this
.data = data;
this
.pageSize = pageSize;
this
.pageCount = data.size()/pageSize;
if
(data.size()%pageSize!=
0
){
this
.pageCount++;
}
}
/**
* 得到分页后的数据
*
* @param pageNum 页码
* @return 分页后结果
*/
public
List<T> getPagedList(
int
pageNum) {
int
fromIndex = (pageNum -
1
) * pageSize;
if
(fromIndex >= data.size()) {
return
Collections.emptyList();
}
int
toIndex = pageNum * pageSize;
if
(toIndex >= data.size()) {
toIndex = data.size();
}
return
data.subList(fromIndex, toIndex);
}
public
int
getPageSize() {
return
pageSize;
}
public
List<T> getData() {
return
data;
}
public
int
getPageCount() {
return
pageCount;
}
public
static
void
main(String[] args) {
Integer[] array = {
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
};
List<Integer> list = Arrays.asList(array);
ListPageUtil<Integer> pager =
new
ListPageUtil<Integer>(list,
10
);
System.out.println(pager.getPageCount());
List<Integer> page1 = pager.getPagedList(
1
);
System.out.println(page1);
List<Integer> page2 = pager.getPagedList(
2
);
System.out.println(page2);
List<Integer> page3 = pager.getPagedList(
3
);
System.out.println(page3);
}
}
|