前言
分页问题是我们开发中必不可少的,分页在我看来主要是是大类(或许不准确),一类是依靠数据库自身的分页机制,一种是依靠内存分页,今天就讲一讲依靠内存的集合分页
上代码
package XXXXX;
import java.util.ArrayList;
import java.util.List;
/**
* @Classname PagingOfList
* @Description TODO
* @Date 2020/8/29 20:41
* @Created by windBird
*/
public class PagingOfList {
public static void main(String[] args) {
List<User> users = new ArrayList<>();
for (int i = 0; i < 20; i++) {
User user = new User("LiSi", i);
users.add(user);
}
//Todo: List 分页
int page = 1;
int pageSize = 10;
PagingOfList(users, page, pageSize);
}
private static void PagingOfList(List<User> users,int page, int pageSize) {
List<User> resultUsers = new ArrayList<>();
int size = users.size();
int beforeNumber = page>1?(page-1)*pageSize:0;
for (int i = 0; i <pageSize &&i<size-beforeNumber; i++) {
resultUsers.add(users.get(beforeNumber+i));
}
//Todo: Show result
resultUsers.forEach(ru-> System.out.println(ru.getAge() +"="+ ru.getName()));
}
}
结果1: page = 1 pageSzie =10
结果2: page =2 pageSzie =10
结果3 : page =2 pageSzie =20
注意
0.约定大于一切,动工前一定要约定好
- 前端传参page从1开始 ,或者后端处理
- 注意内存问题(Java jvm 有大小)
- 考虑具体的场景(脱离业务的都是闹着玩)