java list 批量处理,java list 分页,方便分批处理整个list的数据

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

public class ListPageUtil {

/**

* 每页显示条数

*/

private int pageSize;

/**

* 总页数

*/

private int pageCount;

/**

* 原集合

*/

private List data;

public ListPageUtil(List data, int pageSize) {

if (data == null || data.isEmpty()) {

throw new IllegalArgumentException("data must be not empty!");

}

this.data = data;

this.pageSize = pageSize;

this.pageCount = data.size()/pageSize;

if(data.size()%pageSize!=0){

this.pageCount++;

}

}

/**

* 得到分页后的数据

*

* @param pageNum 页码

* @return 分页后结果

*/

public List getPagedList(int pageNum) {

int fromIndex = (pageNum - 1) * pageSize;

if (fromIndex >= data.size()) {

return Collections.emptyList();

}

int toIndex = pageNum * pageSize;

if (toIndex >= data.size()) {

toIndex = data.size();

}

return data.subList(fromIndex, toIndex);

}

public int getPageSize() {

return pageSize;

}

public List getData() {

return data;

}

public int getPageCount() {

return pageCount;

}

public static void main(String[] args) {

Integer[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

List list = Arrays.asList(array);

ListPageUtil pager = new ListPageUtil(list, 10);

System.out.println(pager.getPageCount());

List page1 = pager.getPagedList(1);

System.out.println(page1);

List page2 = pager.getPagedList(2);

System.out.println(page2);

List page3 = pager.getPagedList(3);

System.out.println(page3);

}

}

Java中的List可以通过分页来实现对数据批处理,常见的方法有两种: 1. 使用subList方法实现分页 List提供了subList方法,可以截取List中某一段数据作为一个子List返回,此方法的参数是起始索引和终止索引,起始索引包含在子List中,而终止索引则不包含在子List中。因此,可以通过计算起始索引和终止索引来实现分页。 例如,假设我们有一个List<Integer>,要将其中的数据按照每页10条进行分页,可以按照如下代码实现: ``` List<Integer> list = new ArrayList<>(); // 初始化list int pageNum = 2; // 第2页 int pageSize = 10; // 每页10条数据 int startIndex = (pageNum - 1) * pageSize; int endIndex = pageNum * pageSize; if (endIndex > list.size()) { endIndex = list.size(); } List<Integer> subList = list.subList(startIndex, endIndex); ``` 2. 使用分页插件实现分页 除了手动计算起始索引和终止索引之外,还可以使用一些开源的分页插件来实现分页功能,比如MyBatis提供的分页插件PageHelper。使用分页插件可以简化代码,提高开发效率。 以PageHelper为例,可以按照如下步骤来实现分页: 1. 引入PageHelper的Maven依赖: ``` <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.1</version> </dependency> ``` 2. 在MyBatis的配置文件中配置PageHelper插件: ``` <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"/> </plugins> ``` 3. 在Java代码中使用PageHelper.startPage方法来开启分页功能: ``` int pageNum = 2; // 第2页 int pageSize = 10; // 每页10条数据 PageHelper.startPage(pageNum, pageSize); List<Integer> list = mapper.selectList(); // 进行查询操作 ``` 使用PageHelper插件可以自动计算起始索引和终止索引,而且还支持多种数据库的分页方式,非常方便
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值