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流處理的方法總結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM