在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;
}