之前做过一个需求,就是要数据分页,然后,分到后面没数据了,就返回第一页,
我的解决办法就是从缓存中获取到所有数据,然后疯长成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);
}
}
}