网站首页 > 基础教程 正文
有时候我们需要将大集合按指定的数量分割成若干个小集合。(比如:集合作为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;
}
猜你喜欢
- 2024-10-18 java简易闹钟程序源码 java闹钟简单代码
- 2024-10-18 Java基础 网络编程 java中网络编程三要素
- 2024-10-18 从愚蠢的代码中学习:一位Java程序员的反思
- 2024-10-18 Java集合、多线程、反射和Spring框架总结,源码解析
- 2024-10-18 Java 字符串详解 java字符串符号
- 2024-10-18 Java实现删除某条信息并返回当前页操作
- 2024-10-18 恕我直言,在座的各位根本不会写 Java!
- 2024-10-18 Java 21:有什么新变化? java21和java22是什么版本
- 2024-10-18 「Java知识」字符串拼接不要再StringBuilder了用StringJoiner爽
- 2024-10-18 阿里资深工程师教你如何优化 Java 代码
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)