业务上遇到一种情况,已经一次性获取了所有数据,需要进行分页操作,可以使用以下方法:
// list集合分页拆分
public <T> List<T> subList(List<T> o, int page, int size) {
List<T> r = new ArrayList<>();
for (int i = size*(page-1); i < size*page && i < o.size(); i++) {
r.add(o.get(i));
}
return r;
}
// list集合分页拆分 (list自带方法)
// 注意,subList 方法返回的是原始列表的一个视图,对子列表的修改会影响到原始列表,同样,对原始列表的修改也会影响到子列表
public <T> List<T> subList2(List<T> o, int page, int size) {
return o.subList(size*(page-1), Math.min(size*page, o.size()));
}