list翻页小算法

来源:互联网 发布:手机淘宝网打不开 编辑:程序博客网 时间:2024/05/17 23:42

之前做过一个需求,就是要数据分页,然后,分到后面没数据了,就返回第一页,
我的解决办法就是从缓存中获取到所有数据,然后疯长成list,然后调用这个方法,实现我的需求。

这个方法就是list的翻页截取

/** * 根据输入的页数i值,翻页截取list的数据 * 时间list翻页 * @param l 要翻页的list * @param i 第几页 * @param pageSum 每页显示几条 * @return list * @author x * @date 2017-7-20 下午4:06:56 */public final static List<Object> subList(List<Object> l, int i,int pageSum) {int size = l.size();//每一页显示多少数据int h = pageSum;if (size < h) {return l;// 当输入的页数,超过数据最大页数时,循环回去第一页} else if ((i + 1) * h >= size && (i + 1) * h - size >= h) {int r = size % h != 0 ? size / h + 1 : size / h;int g = (i % r) * h;int gs = g + h;if (gs < size) {return l.subList(g, gs);} else {return l.subList(g, size);}} else {if (i * h + h < size) {return l.subList(i * h, i * h + h);} else {return l.subList(i * h, size);}}}