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 pageList(List> array,Integer page,Integer limit){

// 数组长度

int count = array.size();

// 添加分页的数据

ArrayList 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之间的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值