/**
* @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...