zoukankan      html  css  js  c++  java
  • Java集合按照索引分页,以及JS数组代码按照索引分页的源码

    记得有一次写一个需求,一时脑热写了个按照索引分页,至于是为什么写,已经忘了

    首先是Java的

    import java.math.BigDecimal;
    import java.util.ArrayList;
    import java.util.List;
    
    public class IndexPage {
    
    	/**
    	 * 
    	 * @Description 索引分页  
    	 * @author 1162107757@qq.com何杰
    	 * @date 2018年7月23日
    	 */
    	public static List<Object> pageList(List<?> array,Integer page,Integer limit){
    		// 数组长度
    		int count = array.size();
    		// 添加分页的数据
    		ArrayList<Object> pageList = new ArrayList<>();
    		// 处理数据不够limit的判断
    		if(page > count / limit){
    			if(Double.parseDouble(page.toString()) > new BigDecimal(count).divide(new BigDecimal(limit)).doubleValue()){
    				// 计算分页
    				page = (page - 1) * limit;
    				if(page > array.size()){
    					return null;
    				}else{
    					for (int i = page; i < array.size(); i++) {
    						Object obj = array.get(i);
    						pageList.add(obj);
    					}
    					return pageList;
    				}
    			}
    		}
    		// 如果要查询的数据长度大于数据库总数的长度
    		// 处理总数没有limit大的情况
    		if(limit > count){
    			if((page - 1) * limit > count){
    				return null;
    			}else{
    				page = (page - 1) * limit;
    				for (int i = page; i < array.size(); i++) {
    					Object obj = array.get(i);
    					pageList.add(obj);
    				}
    				return pageList;
    			}
    		}
    		// 正常数据
    		// 计算分页
    		page = (page - 1) * limit;
    		for (int i = page; i < (page + limit); i++) {
    			Object obj = array.get(i);
    			pageList.add(obj);
    		}
    		return pageList;
    	}
    	
    }
    

      然后是JS,产品经理上次让做的一个功能,页面选择了数据,但是数据只是逻辑存储,并没有存储到数据库,而且需要实现可以搜索,也可以分页,然后就把Java的代码稍微改了一下

            // 按照数组索引分页
    	// param products 所有数据
    	// param page 当前页
    	// param limit 当前页条数
    	function indexPage(products,page,limit){
    		// 数组长度
    		var count = products.length;
    		// 添加分页的数据
    		var pageList = new Array();
    		if(page > count / limit){
    			if(page > (count * limit)){
    				// 计算分页
    				page = (page - 1) * limit;
    				if(page > products.length){
    					return null;
    				}else{
    					for (var i = page; i < products.length; i++) {
    						var product = products[i];
    						pageList.push(product);
    					}
    					return pageList;
    				}
    			}
    		}
    		// 如果要查询的数据长度大于数据库总数的长度
    		// 处理总数没有limit大的情况
    		if(limit > count){
    			if((page - 1) * limit > count){
    				return null;
    			}else{
    				page = (page - 1) * limit;
    				for (var i = page; i < products.length; i++) {
    					var product = products[i];
    					pageList.push(product);
    				}
    				return pageList;
    			}
    		}
    		// 正常数据
    		// 计算分页
    		page = (page - 1) * limit;
    		for (var i = page; i < (page + limit); i++) {
    			var product = products[i];
    			pageList.push(product);
    		}
    		return pageList;
    	}    
    

      page的最小参数请传入1,limit随意,最后返回的就是分页的数据,当然只返回page~limit之间的数据

  • 相关阅读:
    洛谷P3178 [HAOI2015]树上操作 题解 树链剖分+线段树
    洛谷P2590 [ZJOI2008]树的统计 题解 树链剖分+线段树
    2017年NOIP普及组复赛题解
    洛谷P3957 跳房子 题解 二分答案/DP/RMQ
    2016年NOIP普及组复赛题解
    2015年NOIP普及组复赛题解
    2014年NOIP普及组复赛题解
    洛谷P2258 子矩阵 题解 状态压缩/枚举/动态规划
    2013年NOIP普及组复赛题解
    第四章 选择结构(二)
  • 原文地址:https://www.cnblogs.com/hjieone/p/10185581.html
Copyright © 2011-2022 走看看