优秀的编程知识分享平台

网站首页 > 技术文章 正文

Java将List按指定数量拆分成多个的两种实现方法

nanyue 2025-01-16 20:21:02 技术文章 3 ℃

有时候我们需要将大集合按指定的数量分割成若干个小集合。(比如:集合作为SQL中IN的参数,而SQL又有长度限制,所以需要分批分几次进行查询)

1、使用google guava对List进行分割

需要引入google guava依赖,引入后可以使用,简单方便但是需要引入额外依赖

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>23.0</version>
</dependency>

拆分调用

List<T> list = new ArrayList();
//拆分list
List<List<T>> partition = Lists.partition(list , 200);

2、自己手写方法实现将List<T>拆分成N个

分法代码:

	/**
	 * 按指定大小,分隔集合,将集合按规定个数分为n个部分
	 * 
	 * @param <T>
	 * 
	 * @param list
	 * @param len
	 * @return
	 */
	public static <T> List<List<T>> splitList(List<T> list, int len) {

		if (list == null || list.isEmpty() || len < 1) {
			return Collections.emptyList();
		}

		List<List<T>> result = new ArrayList<>();

		int size = list.size();
		int count = (size + len - 1) / len;

		for (int i = 0; i < count; i++) {
			List<T> subList = list.subList(i * len, ((i + 1) * len > size ? size : len * (i + 1)));
			result.add(subList);
		}

		return result;
	}
最近发表
标签列表