java8 stream 逻辑分页使用教学

274 阅读1分钟

示例:

//查库(演示前提忽略即可)
List<City> List = cityDao.getCityList(bo);
//分页
List<City> cityList = list.stream()
.skip((bo.getPageNum() - 1) * bo.getPageSize())
.limit(bo.getPageSize())
.collect(Collectors.toList());

解析:

两个参数:

  • bo.getPageNum() 页数
  • bo.getPageSize() 分页大小

两个函数:

  • skip(long n)跳过n条,
  • limit(long N)获取前N条元素

例如:

3页,分页大小20
.skip((bo.getPageNum() - 1) * bo.getPageSize())
.limit(bo.getPageSize())
跳过40条,取前20条,正好就是第三页的内容
.skip((40)
.limit(20)