java中对List集合进行分页的方法

一、通过Stream的 skip() 和 limit() 方法组合分页

import java.lang.Math;
import java.util.*;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        
        List<String> names=new ArrayList();
        names.add("a");
        names.add("b");
        names.add("c");
        names.add("d");
        names.add("e");
        names.add("f");
        names.add("g");
        names.add("h");
        names.add("i");
        names.add("j");
        names.add("k");
        
        int total=names.size();
        int pageSize=3;
        /*两种页数计算方式都可以:1.取余计算 2.向上取整*/
        int pages = total % pageSize == 0 ? total / pageSize : total / pageSize + 1;
       // int pages= (int)Math.ceil(Double.valueOf(total)/pageSize);
        for(int pageNo = 1;pageNo <= pages;pageNo++){
            List<String> subName=names.stream().skip((pageNo-1)*pageSize).limit(pageSize).collect(Collectors.toList());
            System.out.println(subName);
        }
    }
}

 

二、通过数组的 subList() 方法

import java.lang.Math;
import java.util.*;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        
        List<String> names=new ArrayList();
        names.add("a");
        names.add("b");
        names.add("c");
        names.add("d");
        names.add("e");
        names.add("f");
        names.add("g");
        names.add("h");
        names.add("i");
        names.add("j");
        names.add("k");
        
        int total=names.size();
        int pageSize=3;
        /*两种页数计算方式都可以:1.取余计算 2.向上取整*/
        int pages = total % pageSize == 0 ? total / pageSize : total / pageSize + 1;
       // int pages= (int)Math.ceil(Double.valueOf(total)/pageSize);
        for(int pageNo=1;pageNo <= pages;pageNo++){
            List<String> subName;
            if (pageNo==pages){
                subName=names.subList((pageNo-1)*pageSize,total);
            } else {
                subName=names.subList((pageNo-1)*pageSize,pageNo*pageSize);
            }
            System.out.println(subName);
        }
    }
}

 

posted @ 2022-09-22 17:05  蓝迷梦  阅读(2740)  评论(0)    收藏  举报