Java如何在List中进行数据分页
- 业务场景
今天在编写代码的时候遇到一个场景,数据库中的存储的状态少于前端需要展示的状态,需要在JAVA层中进行状态处理,但是该列表出现需要的状态较多并且需要分页,那么直接将分页交给数据库是不理智的(遵循复杂的逻辑交给应用层原则),那么我就需要将所有状态查询出来(此时可以存redis是一个不错的选择)在List中进行分页来实现该业务逻辑。
- 代码实现
List<Active> actives = mapper.queryActives(); // 数据库查询数据
/*
判断actives是否为NULL提前结束
*/
List<Active> Active = new ArrayList<Active>(); // 存放页面需要展示的数据
int currIdx = (page > 1 ? (page -1) * rows: 0);
for (int i = 0; i < rows && i < actives.size() - currIdx; i++) { // 判断条件十分巧妙,防止List取值越界
Active active = actives.get(currIdx + i);
Active.add(active);
}