List分页

   /**
     * 获取总页数
     * @param listSize    list
     * @param size         页大小
     * @return
     */
    public static int totalPage(Integer listSize, Integer size){
        int page = listSize/size;
        if(listSize%size>0){
            page += 1;
        }
        return page;
    }


   /**
     * 分页获取list
     * @param list               list
     * @param size              页大小
     * @param currentPage  页码
     * @return
     */
    public static List listPage(List list, int size, int currentPage){

        /**
         * 0,当前页大于总页码,直接返回
         * 1,总共就一页:第一页总条数不足页大小,需要截取
         * 2,最后一页:总条数不足页大小,需要截取
         */
        int listSize = list.size();
        int page = totalPage(listSize, size);
        if(currentPage > page){
            return null;
        }

        if(page == 1 && listSize < size){
            return list.subList(0, listSize);
        }

        int index = (currentPage - 1) * size;
        if(page > 1 && page == currentPage && (listSize - index) < size){
            return list.subList(index, (listSize - index + index));
        }

        return list.subList(index, index + size);
    }

 

posted @ 2020-02-27 10:51  wanhua.wu  阅读(265)  评论(0编辑  收藏  举报