博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java分页需求
阅读量:5163 次
发布时间:2019-06-13

本文共 6115 字,大约阅读时间需要 20 分钟。

    近期在实现项目接口时,经常需要分页功能。有时返回“String”,有时是“Object”格式的分页List。针对这种情况,本人用java实现对List分页。

 

第一版

package org.sun.java;import java.util.ArrayList;import java.util.List;/** *  * @author Administrator * @date 2016年7月16日 */public class SubListOperation {    final static int COUNT = 18;    public List
init(int size) { List
lists = new ArrayList
(); for (int i = 0; i < size; i++) { lists.add("t" + (i + 1)); } return lists; } /** * * @param pageNum * @param pageSize * @return 简单分页功能 */ public List
subList(int pageNum, int pageSize) { List
lists = init(COUNT); int fromIndex = (pageNum - 1) * pageSize; int toIndex = fromIndex + pageSize; return lists.subList(fromIndex, toIndex); } public static void main(String[] args) { System.out.println("-------- start --------"); new SubListOperation().output(); System.out.println("-------- finish --------"); } public void output(){ int pageNum=2; int pageSize=5; for(String s:subList(pageNum,pageSize)){ System.out.println(s); } }}

-------- start --------

t6
t7
t8
t9
t10
-------- finish --------

考虑到超出元素个数时异常的情况,做多一步判断。

第二版

/**     *      * @param pageNum     * @param pageSize     * @return  简单分页功能     */    public List
subList(int pageNum, int pageSize) { List
lists = init(COUNT); int fromIndex = (pageNum - 1) * pageSize; int toIndex = fromIndex + pageSize; int size = lists.size(); if(fromIndex>=size){ return new ArrayList
(); } return lists.subList(fromIndex, Math.min(size,toIndex)); } 第三版
package org.sun.java;import java.util.ArrayList;import java.util.List;/** *  * @author Administrator * @date 2016年7月16日 */public class SubListOperation {    final static int COUNT = 18;    public List
init(int size) { List
lists = new ArrayList
(); for (int i = 0; i < size; i++) { lists.add("t" + (i + 1)); } return lists; } /** * * @param size * @return 初始化用户列表 */ public List
initUser(int size) { List
lists = new ArrayList
(); for (int i = 0; i < size; i++) { lists.add(new User((i + 1), "user" + (i + 1))); } return lists; } /** * * @param pageNum * @param pageSize * @return 简单分页功能 */ public List
userSubList(int pageNum, int pageSize) { List
lists = initUser(COUNT); int fromIndex = (pageNum - 1) * pageSize; int toIndex = fromIndex + pageSize; int size = lists.size(); if (fromIndex >= size) { return new ArrayList
(); } return lists.subList(fromIndex, Math.min(size, toIndex)); } public List
subList(int pageNum, int pageSize) { List
lists = init(COUNT); int fromIndex = (pageNum - 1) * pageSize; int toIndex = fromIndex + pageSize; int size = lists.size(); if (fromIndex >= size) { return new ArrayList
(); } return lists.subList(fromIndex, Math.min(size, toIndex)); } static class User { int id; String name; public User(int id, String name) { super(); this.id = id; this.name = name; } @Override public String toString() { return "User [id=" + id + ", name=" + name + "]"; } } public static void main(String[] args) { System.out.println("-------- start --------"); // new SubListOperation().outputString(); new SubListOperation().outputObject(); System.out.println("-------- finish --------"); } public void outputString() { int pageNum = 2; int pageSize = 5; for (String s : subList(pageNum, pageSize)) { System.out.println(s); } } public void outputObject() { int pageNum = 2; int pageSize = 5; for (User s : userSubList(pageNum, pageSize)) { System.out.println(s); } }}
 

-------- start --------

User [id=6, name=user6]
User [id=7, name=user7]
User [id=8, name=user8]
User [id=9, name=user9]
User [id=10, name=user10]
-------- finish --------

 

泛型方法,通用类型实现分页

package org.sun.java;import java.util.ArrayList;import java.util.List;/** *  * @author Administrator * @date 2016年7月16日 */public class SubListOperation {    final static int COUNT = 18;    public List
init(int size) { List
lists = new ArrayList
(); for (int i = 0; i < size; i++) { lists.add("t" + (i + 1)); } return lists; } /** * * @param size * @return 初始化用户列表 */ public List
initUser(int size) { List
lists = new ArrayList
(); for (int i = 0; i < size; i++) { lists.add(new User((i + 1), "user" + (i + 1))); } return lists; } /** * * @param lists 将被分页展示的列表 * @param pageNum 页码数 * @param pageSize 每页条数大小 * @return */ public
List
generalPagenation(List
lists,int pageNum, int pageSize) { int fromIndex = (pageNum - 1) * pageSize; int toIndex = fromIndex + pageSize; int size = lists.size(); if (fromIndex >= size) { return new ArrayList
(); } return lists.subList(fromIndex, Math.min(size, toIndex)); } static class User { int id; String name; public User(int id, String name) { super(); this.id = id; this.name = name; } @Override public String toString() { return "User [id=" + id + ", name=" + name + "]"; } } public static void main(String[] args) { System.out.println("-------- start --------"); new SubListOperation().outputT(); System.out.println("-------- finish --------"); } public void outputT() { int pageNum = 3; int pageSize = 5; for (Object s : generalPagenation(init(18),pageNum, pageSize)) { System.out.println(s); } System.out.println("---------***---------"); for (Object s : generalPagenation(initUser(12),pageNum, pageSize)) { System.out.println(s); } }}

-------- start --------

t11
t12
t13
t14
t15
---------***---------
User [id=11, name=user11]
User [id=12, name=user12]
-------- finish --------

 

 

 

转载于:https://www.cnblogs.com/SeaSky0606/p/5675158.html

你可能感兴趣的文章
jQuery插件开发
查看>>
史上最全JS表单验证封装类
查看>>
jQuery Ajax通用js封装
查看>>
[原创]spring及springmvc精简版--IOC
查看>>
自定义 SharePoint 2010 快速启动栏和顶部链接栏
查看>>
NYOJ-289 苹果 又是一个典型的01背包和上题一样没啥好说的
查看>>
HDU 2262 回溯算法 递归枚举
查看>>
九度0J 1374 所有员工年龄排序
查看>>
查询某端口的连接数
查看>>
listview初始化后仍为空
查看>>
无刷新分页
查看>>
SIFT算法
查看>>
git各种撤销操作
查看>>
每天努力一点之SQL
查看>>
UINavigationBar-使用总结
查看>>
夺命雷公狗jquery---11属性操作
查看>>
linux 常用命令
查看>>
display属性和属性值(18个属性值,常见面试题)
查看>>
微信小程序图片使用示例
查看>>
设计模式之工厂模式
查看>>