PageHelper插件分页
PageHelper.startPage(pageNum, pageSize);
PageInfo<T> pageInfo = new PageInfo<>(list);
PageHelper.clearPage();
PageHelper插件分页很方便,但也有缺点;
当list集合进行并集、交集等操作后,再用PageHelper便会出问题,
此时可将list集合先排序,再截取达到分页的效果,如下:
list.sort(Comparator.comparing(T::getId).reversed()); //反序
List<Integer> integers = list.subList(start, end);//截取1
List<Integer> collect = list.stream().skip(start).limit(pageSize).collect(Collectors.toList());//截取2 (两种截取方法均可)
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(3);
list.add(1);
list.add(5);
list.add(2);
list.add(4);
Integer currentPage = 1;
Integer pageSize = 3;
Long skipNumber = (currentPage - 1) * pageSize.longValue();
list.sort(Comparator.comparing(Integer::intValue).reversed()); //反序
// Integer start = min(skipNumber, list.size());
// Integer end = min(skipNumber + pageSize, list.size());
// List<Integer> integers = list.subList(start, end);
// System.out.println(integers.toString());
List<Integer> collect = list.stream().skip(skipNumber).limit(pageSize).collect(Collectors.toList());
System.out.println("原顺序:" + list.toString());
System.out.println("分页后:" + collect.toString());
//打乱list里面的顺序
Collections.shuffle(list);
System.out.println("乱序后:" + list.toString());
}
测试结果
list的其他应用:https://pingzhengguo.blog.csdn.net/article/details/86569380 (类型转换,排序,分组)
https://pingzhengguo.blog.csdn.net/article/details/86540899(list的最大,最小,求和,平均)
https://pingzhengguo.blog.csdn.net/article/details/86571528 (去重和提取重复元素)
https://pingzhengguo.blog.csdn.net/article/details/90484690(list和树状间的转换)