zoukankan      html  css  js  c++  java
  • java 对list进行切片,截取指定段的list,list集合分页

     1 public Result<?> queryPageList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
     2                                    @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
     3 
     4         //1.计算出需要跳过多少条数据(流切片的起始位置)
     5         int startPosition = (pageNo-1)*pageSize;
     6         List<T> allCount = service.getAllCount();
     7         Stream<T> stream = allCount.stream().skip(startPosition).limit(pageSize);
     8         List<T> resultAccountList = stream.collect(Collectors.toList());
     9         return Result.OK(resultAccountList);
    10     }

    刚接触到java 的流处理,发现非常强大,我这里因为service.getAllCount并不是一个单独的sql,而是多个sql整合而来,因此没办法在sql中写limit来分页

    1.说明一下方法

    • 第一步是获取流才能对list进一步操作,list.stream()则是获取流
    • 原本想着有没有直接的分页函数,设置起始和落点就行,但是看了一圈也没人用这种分页方式
    • 第二步是skip(Long n),顾名思义就是跳过n个位置,list总长度不足n的将返回空的流
    • limit则是限制截取多少个数据,这样两个配合起来就实现了切片

    2.参考的博客

    https://blog.csdn.net/weixin_31256083/article/details/112902288 java8流处理的方法总结

  • 相关阅读:
    Delphi Help
    RAD 10 新控件 TSearchBox TSplitView
    滚动条
    c++builder Active Form
    chart左侧
    RAD 10 蓝牙
    浏览器插件 火狐插件
    c++builder delphi 调用dll dll编写
    模拟键盘 键盘虚拟代码
    oracle怎么把一个用户下的表复制给另一个用户?(授予表权限)
  • 原文地址:https://www.cnblogs.com/cybg/p/15538697.html
Copyright © 2011-2022 走看看