zoukankan      html  css  js  c++  java
  • Java分页需求

        近期在实现项目接口时,经常需要分页功能。有时返回“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<String> init(int size) {
            List<String> lists = new ArrayList<String>();
            for (int i = 0; i < size; i++) {
                lists.add("t" + (i + 1));
            }
            return lists;
        }
        
        /**
         * 
         * @param pageNum
         * @param pageSize
         * @return  简单分页功能
         */
        public List<String> subList(int pageNum, int pageSize) {
            List<String> 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<String> subList(int pageNum, int pageSize) {
            List<String> lists = init(COUNT);
            int fromIndex = (pageNum - 1) * pageSize;
            int toIndex = fromIndex + pageSize;
            int size = lists.size();
            if(fromIndex>=size){
                return new ArrayList<String>();
            }
            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<String> init(int size) {
            List<String> lists = new ArrayList<String>();
            for (int i = 0; i < size; i++) {
                lists.add("t" + (i + 1));
            }
            return lists;
        }
    
        /**
         * 
         * @param size
         * @return 初始化用户列表
         */
        public List<User> initUser(int size) {
            List<User> lists = new ArrayList<User>();
            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<User> userSubList(int pageNum, int pageSize) {
            List<User> lists = initUser(COUNT);
            int fromIndex = (pageNum - 1) * pageSize;
            int toIndex = fromIndex + pageSize;
            int size = lists.size();
            if (fromIndex >= size) {
                return new ArrayList<User>();
            }
            return lists.subList(fromIndex, Math.min(size, toIndex));
        }
    
        
        
        public List<String> subList(int pageNum, int pageSize) {
            List<String> lists = init(COUNT);
            int fromIndex = (pageNum - 1) * pageSize;
            int toIndex = fromIndex + pageSize;
            int size = lists.size();
            if (fromIndex >= size) {
                return new ArrayList<String>();
            }
            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<String> init(int size) {
            List<String> lists = new ArrayList<String>();
            for (int i = 0; i < size; i++) {
                lists.add("t" + (i + 1));
            }
            return lists;
        }
    
        /**
         * 
         * @param size
         * @return 初始化用户列表
         */
        public List<User> initUser(int size) {
            List<User> lists = new ArrayList<User>();
            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 <T> List<T> generalPagenation(List<T> lists,int pageNum, int pageSize) {
            int fromIndex = (pageNum - 1) * pageSize;
            int toIndex = fromIndex + pageSize;
            int size = lists.size();
            if (fromIndex >= size) {
                return new ArrayList<T>();
            }
            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 --------

     
  • 相关阅读:
    没事千万不要升级VirtualBox和Vagrant!
    以太坊开源项目
    以太坊合约第三方库
    Redis dbfilename
    SUSE Redis 开机启动
    SUSE Linux Enterprise Server 12 SP3 安装redis 6.0以上版本
    HTML基础练习
    html基础
    关于css 浮动的例子
    css 实现三角形
  • 原文地址:https://www.cnblogs.com/SeaSky0606/p/5675158.html
Copyright © 2011-2022 走看看