龙空技术网

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

简直是胡来 673

前言:

当前朋友们对“分割数组java”都比较珍视,朋友们都需要了解一些“分割数组java”的相关知识。那么小编也在网上收集了一些关于“分割数组java””的相关知识,希望姐妹们能喜欢,大家一起来了解一下吧!

有时候我们需要将大集合按指定的数量分割成若干个小集合。(比如:集合作为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();//拆分listList<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;	}

标签: #分割数组java