java中利用List的subList方法實(shí)現(xiàn)對(duì)List分頁(yè)(簡(jiǎn)單易學(xué))
以下是介紹利用List的subList方法實(shí)現(xiàn)對(duì)List分頁(yè),廢話(huà)不多說(shuō)了,直接看代碼把
/** *//** * List分頁(yè) * 實(shí)現(xiàn):利用List的獲取子List方法,實(shí)現(xiàn)對(duì)List的分頁(yè) * @author 顯武 * @date 2010-1-8 16:27:31 * */ import java.util.ArrayList; import java.util.List; public class PageModel { private int page = 1; // 當(dāng)前頁(yè) public int totalPages = 0; // 總頁(yè)數(shù) private int pageRecorders;// 每頁(yè)5條數(shù)據(jù) private int totalRows = 0; // 總數(shù)據(jù)數(shù) private int pageStartRow = 0;// 每頁(yè)的起始數(shù) private int pageEndRow = 0; // 每頁(yè)顯示數(shù)據(jù)的終止數(shù) private boolean hasNextPage = false; // 是否有下一頁(yè) private boolean hasPreviousPage = false; // 是否有前一頁(yè) private List list; // private Iterator it; public PageModel(List list, int pageRecorders) { init(list, pageRecorders);// 通過(guò)對(duì)象集,記錄總數(shù)劃分 } /** *//** * 初始化list,并告之該list每頁(yè)的記錄數(shù) * @param list * @param pageRecorders */ public void init(List list, int pageRecorders) { this.pageRecorders = pageRecorders; this.list = list; totalRows = list.size(); // it = list.iterator(); hasPreviousPage = false; if ((totalRows % pageRecorders) == 0) { totalPages = totalRows / pageRecorders; } else { totalPages = totalRows / pageRecorders + 1; } if (page >= totalPages) { hasNextPage = false; } else { hasNextPage = true; } if (totalRows < pageRecorders) { this.pageStartRow = 0; this.pageEndRow = totalRows; } else { this.pageStartRow = 0; this.pageEndRow = pageRecorders; } } // 判斷要不要分頁(yè) public boolean isNext() { return list.size() > 5; } public void setHasPreviousPage(boolean hasPreviousPage) { this.hasPreviousPage = hasPreviousPage; } public String toString(int temp) { String str = Integer.toString(temp); return str; } public void description() { String description = "共有數(shù)據(jù)數(shù):" + this.getTotalRows() + "共有頁(yè)數(shù): " + this.getTotalPages() + "當(dāng)前頁(yè)數(shù)為:" + this.getPage() + " 是否有前一頁(yè): " + this.isHasPreviousPage() + " 是否有下一頁(yè):" + this.isHasNextPage() + " 開(kāi)始行數(shù):" + this.getPageStartRow() + " 終止行數(shù):" + this.getPageEndRow(); System.out.println(description); } public List getNextPage() { page = page + 1; disposePage(); System.out.println("用戶(hù)凋用的是第" + page + "頁(yè)"); this.description(); return getObjects(page); } /** *//** * 處理分頁(yè) */ private void disposePage() { if (page == 0) { page = 1; } if ((page - 1) > 0) { hasPreviousPage = true; } else { hasPreviousPage = false; } if (page >= totalPages) { hasNextPage = false; } else { hasNextPage = true; } } public List getPreviousPage() { page = page - 1; if ((page - 1) > 0) { hasPreviousPage = true; } else { hasPreviousPage = false; } if (page >= totalPages) { hasNextPage = false; } else { hasNextPage = true; } this.description(); return getObjects(page); } /** *//** * 獲取第幾頁(yè)的內(nèi)容 * * @param page * @return */ public List getObjects(int page) { if (page == 0) this.setPage(1); else this.setPage(page); this.disposePage(); if (page * pageRecorders < totalRows) {// 判斷是否為最后一頁(yè) pageEndRow = page * pageRecorders; pageStartRow = pageEndRow - pageRecorders; } else { pageEndRow = totalRows; pageStartRow = pageRecorders * (totalPages - 1); } List objects = null; if (!list.isEmpty()) { objects = list.subList(pageStartRow, pageEndRow); } //this.description(); return objects; } public List getFistPage() { if (this.isNext()) { return list.subList(0, pageRecorders); } else { return list; } } public boolean isHasNextPage() { return hasNextPage; } public void setHasNextPage(boolean hasNextPage) { this.hasNextPage = hasNextPage; } public List getList() { return list; } public void setList(List list) { this.list = list; } public int getPage() { return page; } public void setPage(int page) { this.page = page; } public int getPageEndRow() { return pageEndRow; } public void setPageEndRow(int pageEndRow) { this.pageEndRow = pageEndRow; } public int getPageRecorders() { return pageRecorders; } public void setPageRecorders(int pageRecorders) { this.pageRecorders = pageRecorders; } public int getPageStartRow() { return pageStartRow; } public void setPageStartRow(int pageStartRow) { this.pageStartRow = pageStartRow; } public int getTotalPages() { return totalPages; } public void setTotalPages(int totalPages) { this.totalPages = totalPages; } public int getTotalRows() { return totalRows; } public void setTotalRows(int totalRows) { this.totalRows = totalRows; } public boolean isHasPreviousPage() { return hasPreviousPage; } } //測(cè)試類(lèi): package com.Gavin.tools.util; import java.util.ArrayList; import java.util.List; public class TestPagerModel { public static void main(String args[]) { List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); list.add("e"); list.add("f"); list.add("g"); list.add("h"); list.add("h"); list.add("i"); list.add("j"); list.add("k"); list.add("l"); list.add("m"); PageModel pm = new PageModel(list, 5); List sublist = pm.getObjects(3); for(int i = 0; i < sublist.size(); i++) { System.out.println(sublist.get(i)); } System.out.println(sublist.get(0)); } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java中對(duì)list分頁(yè)并顯示數(shù)據(jù)到頁(yè)面實(shí)例代碼
- java 對(duì)ArrayList進(jìn)行分頁(yè)實(shí)例代碼
- Java使用MyBatis框架分頁(yè)的5種方式
- java仿百度假分頁(yè)代碼實(shí)現(xiàn)的詳解
- java web實(shí)現(xiàn)分頁(yè)查詢(xún)實(shí)例方法
- java實(shí)現(xiàn)分頁(yè)顯示效果
- java分頁(yè)工具類(lèi)的使用方法
- java ssm框架實(shí)現(xiàn)分頁(yè)功能的示例代碼(oracle)
- Java List分頁(yè)功能實(shí)現(xiàn)代碼實(shí)例
相關(guān)文章
JavaWeb HttpServletResponse對(duì)象及常用方法
這篇文章主要介紹了JavaWeb-HttpServletResponse對(duì)象,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03MyBatis利用MyCat實(shí)現(xiàn)多租戶(hù)的簡(jiǎn)單思路分享
這篇文章主要給大家介紹了關(guān)于MyBatis利用MyCat實(shí)現(xiàn)多租戶(hù)的簡(jiǎn)單思路的相關(guān)資料,文中的多租戶(hù)是基于多數(shù)據(jù)庫(kù)進(jìn)行實(shí)現(xiàn)的,數(shù)據(jù)是通過(guò)不同數(shù)據(jù)庫(kù)進(jìn)行隔離,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-06-06IntelliJ IDEA中properties文件顯示亂碼問(wèn)題的解決辦法
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA中properties文件顯示亂碼問(wèn)題的解決辦法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10idea在用Mybatis時(shí)xml文件sql不提示解決辦法(提示后背景顏色去除)
mybatis的xml文件配置的時(shí)候,有時(shí)候會(huì)沒(méi)有提示,這讓我們很頭疼,下面這篇文章主要給大家介紹了關(guān)于idea在用Mybatis時(shí)xml文件sql不提示的解決辦法,提示后背景顏色去除的相關(guān)資料,需要的朋友可以參考下2023-03-03java中的instanceof關(guān)鍵字詳細(xì)解讀
這篇文章主要介紹了java中的instanceof關(guān)鍵字詳細(xì)解讀,instanceof 是 Java 的保留關(guān)鍵字,它的作用是測(cè)試它左邊的對(duì)象是否是它右邊的類(lèi)的實(shí)例,返回 boolean 的數(shù)據(jù)類(lèi)型,需要的朋友可以參考下2024-01-01MyBatis快速入門(mén)(簡(jiǎn)明淺析易懂)
MyBatis是支持普通SQL查詢(xún),存儲(chǔ)過(guò)程和高級(jí)映射的優(yōu)秀持久層框架。mybatis的學(xué)習(xí)是程序員的必修課。今天小編通過(guò)分享本教程幫助大家快速入門(mén)mybatis,對(duì)mybatis入門(mén)知識(shí)感興趣的朋友參考下吧2016-11-11