パブリック クラスListUtil {
//方式一、根据分页条数、返回一个新的リスト集合
パブリック 静的 <T>リスト<リスト<T >> splitList(リスト<T>リスト、int型のpageSize)
{
int型 LISTSIZE = はlist.size ();
int型のページ=(LISTSIZE +(pageSizeを- 1))/ のpageSize。
リスト <リスト<T >> listArray = 新しいのArrayList <リスト<T >> ();
以下のために(int型私= 0; iのページ<;私は++ )
{
リスト <T>のsubList = 新しいのArrayList <T> ();
J = 0; J <LISTSIZE。J ++ )
{
int型 pageIndexパラメータ=((J + 1)+(pageSizeを- 1))/ のpageSize。
もし(pageIndexパラメータ==(I + 1 ))
{
subList.add(list.get(J))。
}
もし、((J + 1)==((J + 1)* のpageSize))
{
破ります。
}
}
listArray.add(のsubList)。
}
戻りlistArray。
}
}
方式一:
パブリック静的ボイドfenye(一覧リスト、INTのページサイズ){
int型トータルカウント=はlist.size()。
int型PAGECOUNT = 0;
INT、M =トータルカウント%PAGESIZE。
IF(M> 0){
PAGECOUNT =トータルカウント/ページサイズ+ 1。
}他{
PAGECOUNT =トータルカウント/ PAGESIZE。
}
ため(INT I = 1; I <= PAGECOUNT; iは++){
IF(M == 0){
リスト<整数>のsubList = list.subList((I-1)*ページサイズ、ページサイズ×(I))。
System.out.println(のsubList)。
}他{
IF(I == PAGECOUNT){
リスト<整数>のsubList = list.subList((I-1)*ページサイズ、トータルカウント)。
System.out.println(のsubList)。
}他{
リスト<整数>のsubList = list.subList((I-1)*ページサイズ、ページサイズ×(I))。
System.out.println(のsubList)。
}
}
}
}
リスト<整数>リスト=新規のArrayList <整数>();
(I 1 = int型、iが52 <; Iは++){ため
list.add(I)。
}
fenye(リスト、10);
方式二:
パブリック<T>リスト<リスト<T >> splitList(リスト<T>リスト、INTページサイズ)
{
int型LISTSIZE =はlist.size()。
int型のページ=(LISTSIZE +(pageSizeを- 1))/のpageSize。
リスト<リスト<T >> listArray =新しいのArrayList <リスト<T >>();
以下のために(; iはページを<; I = 0 int型私は++)
{
リスト<T>
用(int型J = 0; J <LISTSIZEあり、j ++)
{
int型pageIndexパラメータ=((J + 1)+(pageSizeを- 1))/のpageSize。
IF(pageIndexパラメータ==(I + 1))
{
subList.add(list.get(J))。
}
((J + 1)==((J + 1)*のpageSize))であれば
{
破ります。
}
}
listArray.add(のsubList)。
}
戻りlistArray。
}
方式三:
公共のSearchResultページング(リスト<T>リスト、INTページ番号、INTのpageSize)は、例外{スロー
リスト<T> pageList =新規のArrayList <T>();
int型currIdx =(PAGENUMBER> 1(PAGENUMBER -1)*のpageSize:?0);
{; - ;ための式(I ++はcurrIdxをI <pageSizeを&& iのはlist.size()を<I = 0 INT)
T listNew = list.get(currIdx I +)。
pageList.add(listNew)。
}
のSearchResult <T>、検索結果=新規のSearchResult <T>();
searchResult.setList(pageList)。
searchResult.setTotal(はlist.size())。
IF(searchResult.getTotal()%ページサイズ== 0){
searchResult.setPages((INT)searchResult.getTotal()/のpageSize)。
}他{
searchResult.setPages((INT)searchResult.getTotal()/のpageSize + 1)。
}
searchResult.setPageNum(ページ番号)。
searchResult.setPageSize(pageSizeを)。
searchResult.setSize(pageList.size())。
//是否是第一页
IF(ページ番号== 1){
searchResult.setIsFirstPage(TRUE)。
}他{
searchResult.setIsFirstPage(偽)。
}
//是否是最后一页
IF((searchResult.getTotal() -ページ番号*のpageSize)> 0){
searchResult.setIsLastPage(偽)。
}他{
searchResult.setIsLastPage(TRUE)。
}
、検索結果を返します。
}
方式四:
リスト<整数>リスト=新規のArrayList <>();
list.add(1)。
list.add(2)。
list.add(3)。
list.add(4)。
list.add(5)。
int型のページ= 2; //相当于PAGENO
int型のカウント= 20; //相当于のpageSizeの
int型のサイズ=はlist.size();
int型PAGECOUNT =サイズ/カウント。
int型fromIndexの=カウント*(ページ- 1);
int型toIndexの= fromIndexの+数えます。
IF(toIndexの> =サイズ){
たtoIndex =サイズ。
}
IF(ページ> PAGECOUNT + 1){
たfromIndex = 0。
toIndexの= 0;
}
のSystem.out.println(list.subList(fromIndexの、たtoIndex))。