在java中,按指定的长度将List平均切分成多个子List

应用场景

在SQL的 IN 条件中,显式传入参数的情况下,默认最大支持为1000个参数,如果参数超过1000个可以使用这种方法先进行切分取得 子结果集 ,最后再汇聚 子结果集 成为 总结果集

代码

	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, (Math.min((i + 1) * len, size)));
			result.add(subList);
		}

		return result;
	}
posted @ 2022-10-19 13:57  229  阅读(769)  评论(0编辑  收藏  举报