行业知识
List 集合手动分页
2026-11-06 05:09:52
来源:互联网转载
小伙伴们好,���迎关注,一起学习,无限进步
()为方便测试,可以直接在 controller 内添加一个方法,或者直接通过 main 方法测试
List 手动分页:
()@GetMapping("/getUserInfo") public Map getUserInfo(@RequestParam("pageNo") Integer pageNo,@RequestParam("pageSize") Integer pageSize){ if(null == pageNo){ pageNo = 1; } if(null == pageSize){ pageSize = 10; } List userList = new ArrayList(); userList.add(new User(1,"奥迪1",23,"123@qq.com","地址1")); userList.add(new User(2,"奥迪2",23,"124@qq.com","地址2")); userList.add(new User(3,"奥迪3",23,"124@qq.com","地址3")); userList.add(new User(4,"奥迪4",23,"125@qq.com","地址4")); userList.add(new User(5,"奥迪4",23,"126@qq.com","地址5")); userList.add(new User(6,"奥迪5",23,"127@qq.com","地址6")); userList.add(new User(7,"奥迪6",23,"128@qq.com","地址7")); userList.add(new User(8,"奥迪7",23,"129@qq.com","地址8")); userList.add(new User(9,"奥迪7",23,"1219@qq.com","地址9")); userList.add(new User(10,"奥迪10",23,"1231@qq.com","地址10")); userList.add(new User(11,"奥迪11",23,"1232@qq.com","地址11")); Integer limit = (pageNo-1)*pageSize; Integer totalSize = userList.size(); // 方法一 Integer totalPage = totalSize % pageSize == 0 ? totalSize / pageSize : totalSize / pageSize + 1; // 方法二(推荐)其中 pageSize-1 就是 totalSize/pageSize 的最大的余数 // Integer totalPage = (totalSize + pageSize -1) / pageSize; // 方法三 // Integer totalPage = (int) Math.ceil(totalSize / pageSize); if(pageNo > totalPage){ throw new RuntimeException("页数超出了"); } List subList = null; if(pageNo == totalPage){ // 最后一页 subList = userList.subList(limit, totalSize); }else{ Integer end= limit + pageSize; // 截取的最后的下标 subList = userList.subList(limit, end); // 出现空值处理 // subList = CollectionUtils.isEmpty(userList) ? new ArrayList() : userList.subList(limit, Math.min(userList.size(), end)); } Map map = new HashMap(); map.put("data",subList); map.put("total",userList.size()); subList.forEach(System.out::println); return map; } static class User{ private Integer id; private String name; private Integer age; private String email; private String address; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public User(Integer id, String name, Integer age, String email, String address) { this.id = id; this.name = name; this.age = age; this.email = email; this.address = address; } @Override public String toString() { return "User{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", age=" + age + ", email='" + email + '\'' + ", address='" + address + '\'' + '}'; } } 计算总页数方法
// totalPage 总页数,pageSize 每页显示多少条,totalSize 总条数// 方法一Integer totalPage = totalSize % pageSize == 0 ? totalSize / pageSize : totalSize / pageSize + 1;// 方法二(推荐)其中 pageSize-1 就是 totalSize/pageSize 的最大的余数// Integer totalPage = (totalSize + pageSize -1) / pageSize;// 方法三// Integer totalPage = (int) Math.ceil(totalSize / pageSize);
下一篇:淘汰服务器怎么用?