java对列表分页的方法,及mysql分页的sql原型
1.mysql * mysql分页查询: * select <include refid="Base_Column_List" /> from table_test * order by id desc * LIMIT #{offset},#{pageSize} 2. java8 skip limit
Stream流中的常用方法skip Stream流中的常用方法skip:用于跳过元素 如果希望跳过前几个元素,可以使用skip方法获取一个截取之后的新流
Stream流中的常用方法limit Stream流中的常用方法limit:用于截取流中的元素 limit方法可以对流进行截取,只取用前n个。
3. java list subList
代码语言:javascript复制package com.example.core.mydemo.java8;
import com.example.core.mydemo.json2.GsonUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
*
*/
public class SkipLimitTest {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
list.add(7);
list.add(8);
list.add(9);
list.add(10);
List<Integer> listPage = new ArrayList<>();
//add...
int pageNum = 3;
int pageSize = 3;
Integer offset = (pageNum - 1) * pageSize;
//split page
List<Integer> subListPage = list.stream().skip(offset).limit(pageSize).collect(Collectors.toList());
System.out.println("subListPage=" GsonUtils.toJson(subListPage));
//方法2
List<Integer> subListPage2 = subList(list,pageNum,pageSize);
System.out.println("subListPage2=" GsonUtils.toJson(subListPage));
}
//subList手动分页,page为第几页,rows为每页个数
public static List<Integer> subList(List<Integer> list, int pageNum, int pageSize){
List<Integer> listSort = new ArrayList<Integer>();
int size=list.size();
int pageStart=pageNum==1?0:(pageNum-1)*pageSize;//截取的开始位置
int pageEnd=size<pageNum*pageSize?size:pageNum*pageSize;//截取的结束位置
if(size>pageStart){
listSort =list.subList(pageStart, pageEnd);
}
//总页数
int totalPage=list.size()/pageSize;
System.out.println("totalPage=" totalPage);
return listSort;
}
}