一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|

服務器之家 - 編程語言 - JAVA教程 - java中利用List的subList方法實現對List分頁(簡單易學)

java中利用List的subList方法實現對List分頁(簡單易學)

2020-07-02 11:30ycb1689 JAVA教程

本篇文章主要介紹了java中list數據拆分為sublist實現頁面分頁的簡單代碼,具有一定的參考價值,有需要的可以了解一下。

以下是介紹利用List的subList方法實現對List分頁,廢話不多說了,直接看代碼把

java" id="highlighter_915564">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
/** *//** 
* List分頁 
* 實現:利用List的獲取子List方法,實現對List的分頁 
* @author 顯武 
* @date 2010-1-8 16:27:31 
*/
 
import java.util.ArrayList; 
import java.util.List; 
 
public class PageModel { 
  private int page = 1; // 當前頁 
 
  public int totalPages = 0; // 總頁數 
 
  private int pageRecorders;// 每頁5條數據 
 
  private int totalRows = 0; // 總數據數 
 
  private int pageStartRow = 0;// 每頁的起始數 
 
  private int pageEndRow = 0; // 每頁顯示數據的終止數 
 
  private boolean hasNextPage = false; // 是否有下一頁 
 
  private boolean hasPreviousPage = false; // 是否有前一頁 
 
  private List list; 
 
  // private Iterator it; 
 
  public PageModel(List list, int pageRecorders) { 
    init(list, pageRecorders);// 通過對象集,記錄總數劃分 
  
   
  /** *//** 
   * 初始化list,并告之該list每頁的記錄數 
   * @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; 
    
  
 
 
  // 判斷要不要分頁 
  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 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 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; 
  
 
 
//測試類: 
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)); 
  
 
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 午夜在线观看免费完整直播网 | caoporm碰最新免费公开视频 | 暖暖免费高清完整版观看日本 | 久久se视频精品视频在线 | 九九在线精品亚洲国产 | 九九国产在线视频 | a级毛片毛片免费很很综合 a级黄色视屏 | 日韩国产成人精品视频人 | 天天av天天翘天天综合网 | 亚洲第一成年免费网站 | 亚洲精品久久久久久婷婷 | 女烈受刑重口小说 | 香港三级浴室女警官 | 极品久久 | 思思玖玖 | 99精彩视频 | 亚洲无线一二三区2021 | 亚洲高清毛片一区二区 | 国产午夜精品久久久久 | 舔逼| 91九色jiuse006 | 91精品综合久久久久久五月天 | 精品国产一区二区三区久久影院 | 青青网在线视频 | 国产精品女主播大秀在线 | 99久久6er热免费精品 | 国产伦精品一区二区三区免费迷 | 日韩免费在线看 | 好吊色永久免费视频大全 | 亚洲欧美久久婷婷爱综合一区天堂 | 国产人成激情视频在线观看 | 美女的让男人桶爽免费看 | 奇米影视4444 | 婷婷在线成人免费观看搜索 | 欧美专区在线观看 | 亚洲精品第一国产综合高清 | 天天狠天天天天透在线 | 高清女主播一区二区三区 | 香蕉动漫库 | 日本护士撒尿xxxx18 | 女教师波多野结衣高清在线 |