[java] view plaincopy
01./**
02. * 分割List
03. *
04. * @param list 待分割的list
05. * @param pageSize 每段list的大小
06. * @return List<<List<T>>
07. */
08. public static <T> List<List<T>> splitList(List<T> list, int pageSize) {
09. int listSize = list.size(); // list的大小
10. int page = (listSize + (pageSize - 1)) / pageSize;// 页数
11. List<List<T>> listArray = new ArrayList<List<T>>();// 创建list数组,用来保存分割后的list
12. for (int i = 0; i < page; i++) { // 按照数组大小遍历
13. List<T> subList = new ArrayList<T>(); // 数组每一位放入一个分割后的list
14. for (int j = 0; j < listSize; j++) {// 遍历待分割的list
15. int pageIndex = ((j + 1) + (pageSize - 1)) / pageSize;// 当前记录的页码(第几页)
16. if (pageIndex == (i + 1)) {// 当前记录的页码等于要放入的页码时
17. subList.add(list.get(j)); // 放入list中的元素到分割后的list(subList)
18. }
19. if ((j + 1) == ((j + 1) * pageSize)) {// 当放满一页时退出当前循环
20. break;
21. }
22. }
23. listArray.add(subList);// 将分割后的list放入对应的数组的位中
24. }
25. return listArray;
26. }
List 分割
最新推荐文章于 2023-10-17 17:26:06 发布