日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA List集合转Page(分页对象) java 分页 PageModel 测试类TestPagerModel

發布時間:2023/12/3 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA List集合转Page(分页对象) java 分页 PageModel 测试类TestPagerModel 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

http://www.blogjava.net/jzone/archive/2015/06/05/308842.html?opt=admin

/**

?* @version 1.0

?* @author: fwjia

?*/

import?java.util.List;

?

public?class?PageModel<T> {

????/***

?????* 當前頁

?????*/

????private?int?page =?1;

?

????/***

?????* 總頁數

?????*/

????public?int?totalPages =?0;

?

????/***

?????* 每頁數據條數

?????*/

????private?int?pageRecorders;

?

????/***

?????* 總頁數

?????*/

????private?int?totalRows =?0;

?

????/***

?????* 每頁的起始數

?????*/

????private?int?pageStartRow =?0;

?

????/***

?????* 每頁顯示數據的終止數

?????*/

????private?int?pageEndRow =?0;

?

????/***

?????* 是否有下一頁

?????*/

????private?boolean?hasNextPage =?false;

?

????/***

?????* 是否有前一頁

?????*/

????private?boolean?hasPreviousPage =?false;

?

????/***

?????* 數據集合

?????*/

????private?List<T> list;

?

?

????public?PageModel(List<T> list,?int?pageRecorders) {

????????// 通過對象集,記錄總數劃分

????????init(list, pageRecorders);

????}

?

????/** *//**

?????* 初始化list,并告之該list每頁的記錄數

?????* @param list 數據幾個

?????* @param pageRecorders 一頁顯示多少數據

?????*/

????public?void?init(List<T> list,?int?pageRecorders) {

????????this.pageRecorders = pageRecorders;

????????this.list = list;

????????totalRows = list.size();

????????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;

????????}

????}

?

?

????// 判斷要不要分頁

????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 =?"共有數據數:"?+?this.getTotalRows() +

?

????????????????"共有頁數: "?+?this.getTotalPages() +

?

????????????????"當前頁數為:"?+?this.getPage() +

?

????????????????" 是否有前一頁: "?+?this.isHasPreviousPage() +

?

????????????????" 是否有下一頁:"?+?this.isHasNextPage() +

?

????????????????" 開始行數:"?+?this.getPageStartRow() +

?

????????????????" 終止行數:"?+?this.getPageEndRow();

?

????????System.out.println(description);

????}

?

????public?List getNextPage() {

????????page = page +?1;

?

????????disposePage();

?

????????System.out.println("用戶凋用的是第"?+ page +?"頁");

????????this.description();

????????return?getObjects(page);

????}

?

????/**

?????* 處理分頁

?????*/

????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);

????}

?

????/**

?????* 獲取第幾頁的內容

?????*

?????* @param page 當前頁面

?????* @return

?????*/

????public?List<T> getObjects(int?page) {

????????if(page ==?0){

????????????this.setPage(1);

????????}

????????else{

????????????this.setPage(page);

????????}

????????this.disposePage();

????????if?(page * pageRecorders < totalRows) {

????????????// 判斷是否為最后一頁

????????????pageEndRow = page * pageRecorders;

????????????pageStartRow = pageEndRow - pageRecorders;

????????}?else?{

????????????pageEndRow = totalRows;

????????????pageStartRow = pageRecorders * (totalPages -?1);

????????}

?

????????List<T> objects =?null;

????????if?(!list.isEmpty()) {

????????????objects = list.subList(pageStartRow, pageEndRow);

????????}

????????//this.description();

????????return?objects;

????}

?

????public?List<T> 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;

????}

?

}

?

?

?

?

測試類TestPagerModel?

?

import java.util.ArrayList;
import java.util.List;

/**
?* @version 1.0
?* @author: fwjia
?*/
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<String> pm = new PageModel(list, 5);

? ? ? ? List<String> sublist = pm.getObjects(2);
? ? ? ? for(int i = 0; i < sublist.size(); i++) {
? ? ? ? ? ? System.out.println(sublist.get(i));
? ? ? ? }
? ? }

}

?

?

?

上面的在項目中使用了

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

在java中實現list分頁
原創墨咖 最后發布于2019-06-29 17:12:54 閱讀數 162 ?收藏
展開
? ? ? ? ArrayList list = new ArrayList();
? ? ? ? list.add("name");
? ? ? ? list.add("age");
? ? ? ? list.add(16);
? ? ? ? list.add("name1");
? ? ? ? list.add("age1");
? ? ? ? list.add(161);
? ? ? ? list.add("name2");
? ? ? ? list.add("age2");
? ? ? ? list.add(162);
? ? ? ? System.out.println("分頁參數:0,3--:"+list.subList(0,3));
? ? ? ? System.out.println("分頁參數:3,6--:"+list.subList(3,6));
? ? ? ? System.out.println("分頁參數:6,9--:"+list.subList(6,9));
?
————————————————
版權聲明:本文為CSDN博主「墨咖」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_37335810/article/details/94177407

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

/**

?* java內存分頁工具類

?*/

public class JavaMemoryPageUtil {

??

??/**

???* 獲取分頁數據

???* @param dataList 進行分頁的數據集合

???* @param pageNum? 第幾頁

???* @param pageSize 每頁顯示多少條

???* @return

???*/

??@SuppressWarnings({ "rawtypes", "unchecked" })

??public static List getPageLimit(List dataList, int pageNum, int pageSize){

????if(CollectionUtils.isEmpty(dataList)){

??????return dataList;

????}

????List resultList = new ArrayList();

????// 所有dataList數據中的第幾條

????int currIdx = pageNum > 1 ? (pageNum -1) * pageSize : 0;

????for (int i = 0; i < pageSize && i < dataList.size() - currIdx; i++) {

??????resultList.add(dataList.get(currIdx + i));

????}

????return resultList;

??}

}

?

總結

以上是生活随笔為你收集整理的JAVA List集合转Page(分页对象) java 分页 PageModel 测试类TestPagerModel的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。