十、 List分頁(yè)

Java實(shí)現(xiàn)List分頁(yè)

前述:

  • 有從1到8的8個(gè)student
  • 將8個(gè)student分成3頁(yè)

代碼如下:

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        List<Student> list = new ArrayList<Student>();
        list.add(new Student("1"));
        list.add(new Student("2"));
        list.add(new Student("3"));
        list.add(new Student("4"));
        list.add(new Student("5"));
        list.add(new Student("6"));
        list.add(new Student("7"));
        list.add(new Student("8"));

        int pageSize = 3;

        List<List<Student>> pages = getPages(list, pageSize);

        for (int i = 0; i < pageSize; i++) {
            List<Student> page = pages.get(i);
            System.out.println("分頁(yè)" + i + "內(nèi)容如下:");
            for (Student student : page) {
                System.out.println(student.getName());
            }
        }

    }

    //分頁(yè)方法
    public static <T> List<List<T>> getPages(Collection<T> c, Integer pageSize) {
        if (c == null)
            return Collections.emptyList();
        List<T> list = new ArrayList<T>(c);
        if (pageSize == null || pageSize <= 0 || pageSize > list.size())
            pageSize = list.size();
        int numPages = (int) Math.ceil((double)list.size() / (double)pageSize);
        List<List<T>> pages = new ArrayList<List<T>>(numPages);
        for (int pageNum = 0; pageNum < numPages;)
            pages.add(list.subList(pageNum * pageSize, Math.min(++pageNum * pageSize, list.size())));
        return pages;
    }
}

class Student {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Student(String name) {
        this.name = name;
    }
}

內(nèi)容參考:https://stackoverflow.com/questions/19688235/how-to-implement-pagination-on-a-list

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容