List集合進行分頁

2022-03-12 20:17:30 字數 2427 閱讀 9505

/**

* @classname: text2

* @description: (集合的分頁演算法)

* @author luhan

* @date 2023年3月16日 下午17:18:06

*/public class text1

/*** 顯示資料,分頁顯示list裡面的資料

* @param pagenum 頁數

*/public static void showlist(int pagenum)

/**這裡是決定一頁只會顯示6條

* * for迴圈的左邊 i等於的值

* 當是第一頁的時候 1 對 0;索引應該從0開始

* 當是第二頁的時候 2 對 6;索引應該從6開始

* 當是第三頁的時候 3 對 12;索引應該從12開始

* 當是第四頁的時候 4 對 18;索引應該從18開始

* .

* .

* .

* 以此類推

* 當是第n頁的時候索引就應該是從(當前頁數-1)*顯示條數

* *

* * for迴圈的右邊 i小於的值,這裡假設只有20條資料

* 當是第一頁的時候 1 對 0~6;右邊的數應該為6

* 當是第一頁的時候 2 對 6~12;右邊的數應該為6

* 當是第一頁的時候 3 對 12~18;右邊的數應該為6

* 當是第一頁的時候 4 對 18~20;右邊的數應該為20,這裡為什麼會是20而不是24是因為我們只有20條資料,

* 顯然i不能小於24,這樣後面21、22、23根本就沒有值,所以這應該是20

* 設 x = (當前頁數-1)*顯示條數;

* 最後得出右邊的數值應該為:判斷x是不是大於資料的總條數,如果大於就顯示總條數,如果小於就顯示x

* 所以這裡我們可以使用三元運算子來解決就是下方的表示式

* ((pagenum-1)*pasesize)+pasesize > mpagenum ? mpagenum:((pagenum-1)*pasesize)+pasesize)

* 先判斷下(當前是第幾頁-1乘以顯示條數)是不是大於總條數,如果大於總條數就返回總條數,如果小於總條數則返回(當前是第幾頁-1乘以顯示條數)

*/listnewdate = new arraylist();

for (int i = (pagenum-1)*pasesize; i < (

((pagenum-1)*pasesize)+pasesize > mpagenum ? mpagenum:((pagenum-1)*pasesize)+pasesize); i++)

system.out.println(">>>>>>>>>>第"+pagenum+"頁的資料》");

for (int i = 0; i < newdate.size(); i++) } }

如果想直接拿來使用的話,就直接複製下面的**即可

/*** 資料集合的分頁方法,根據傳入總共的資料跟頁碼,返回頁碼所需要顯示多少條的資料

* 採用泛型的方法,即為,list中為什麼型別的資料就返回什麼型別的資料

* @param f 帶有需要進行分頁的資料集合

* @param pageno 第幾頁

* @param datasize 顯示多少條資料

* @return 進過分頁之後返回的資料

*/public static listdatepaging(listf,int pageno,int datasize)

if((object)pageno == null)

if((object)datasize == null)

if(pageno <= 0)

//記錄一下資料一共有多少條

int totalitems = f.size();

//例項化乙個接受分頁處理之後的資料

listafterlist = new arraylist();

/** 進行分頁處理,採用for迴圈的方式來進行處理

* * 首先for迴圈中,i應該從**開始:i應該從 (當前是第幾頁 -1 乘以 條數) 開始

* * 然後for迴圈應該到**結束,也就是i應該小於:判斷(開始的索引+顯示條數)是不是大於總條數,如果大於就是總條數,如果小於就是(開始的索引+顯示條數)

* * 然後讓i++

*/for

( int i = (pageno-1)*datasize;

i < (((pageno -1)*datasize) + datasize >

totalitems ? totalitems:((pageno -1)*datasize) +datasize);

i++)

//然後將處理後的資料集合進行返回

return afterlist;

}

對list集合進行排序並分頁

有時候我們要對不同的資料型別進行排序的時候,一般得取出所有的資料 當然資料量不是上百萬的級別 然後對不同的資料型別進行排序,今天在公司學到一種方法,利用了jdk1.8的特性吧,然後先是根據指定排序後,在進行分頁.在這裡記錄一下 方法 datas是查詢出來的資料,sort是公升還是降排序,order是...

對list集合進行分頁,並將資料顯示在頁面中

工具類 public class pageutil if list.size 0 integer count list.size 記錄總數 integer pagecount 0 頁數 if count pagesize 0 else int fromindex 0 開始索引 int toindex...

List集合分頁處理的方法

第一種方法是迴圈擷取某個頁面的資料 迴圈擷取某頁列表進行分頁 param datalist 分頁資料 param pagesize 頁面大小 param currentpage 當前頁面 public static listpage listdatalist,int pagesize,int cur...