Java List 分片工具类


Java List 分片工具类

为了将一个大的List分组为多个小的List,每个小List的大小为50,我们可以使用Java中的subList​方法来实现。以下是详细的实现步骤和代码示例:

实现步骤

  1. 确定原List的大小:获取原List的大小,以便确定需要分成多少个小组。
  2. 使用循环分组:使用一个循环,每次取50个元素,直到处理完整个原List。
  3. 获取子列表并复制:使用subList​方法获取子列表,并将其复制到一个新的ArrayList中,以避免与原List的关联。
  4. 将新的ArrayList加入到结果List中:将包含50个元素的新ArrayList加入到结果List中。
  5. 处理边界情况:确保循环的索引不会越界,避免IndexOutOfBoundsException​。

代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.util.ArrayList;
import java.util.List;

public class ListGrouping {

public static <T> List<List<T>> groupList(List<T> originalList, int groupSize) {
if (groupSize <= 0) {
throw new IllegalArgumentException("Group size must be positive.");
}
List<List<T>> result = new ArrayList<>();
int size = originalList.size();
for (int i = 0; i < size; i += groupSize) {
int endIndex = i + groupSize;
if (endIndex > size) {
endIndex = size;
}
List<T> sub = new ArrayList<>(originalList.subList(i, endIndex));
result.add(sub);
}
return result;
}

public static void main(String[] args) {
List<Integer> original = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
original.add(i);
}
List<List<Integer>> groups = groupList(original, 4);
System.out.println(groups); // 输出: [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10]]
}
}

代码解释

  • groupList方法

    • 检查分组大小groupSize​是否为正数,如果是非正数则抛出异常。
    • 初始化结果List来存储分组后的子List。
    • 使用循环遍历原List,每次取groupSize​个元素,创建新的ArrayList并加入结果List中。
    • 处理边界情况,确保endIndex​不超过原List的大小。
  • main方法

    • 创建一个包含10个元素的原List。
    • 调用groupList​方法将原List分组,每组4个元素。
    • 打印分组结果。

注意事项

  • 动态视图subList​返回的是原List的视图,直接使用可能影响原List的修改,因此需要复制到新的ArrayList中。
  • 边界情况:处理原List大小不能被groupSize​整除的情况,确保最后一组包含剩余的所有元素。
  • 多线程环境:如果在多线程环境下使用,确保原List在分组过程中不被修改,或者使用不可变的List。

通过以上方法,可以有效地将一个大的List分组为多个小的List,每个小List的大小为指定的值,例如50。


文章作者: Damonny
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Damonny !
 上一篇
在 MyBatis-Plus 中使用 IN 语法 在 MyBatis-Plus 中使用 IN 语法
在 MyBatis-Plus 中使用 `IN` 语法可以通过多种方式实现。首先,可以使用 `QueryWrapper` 或 `LambdaQueryWrapper` 的 `in` 方法动态构建查询条件,适合在 Java 代码中直接操作。其次
2024-12-31
下一篇 
nginx 配置rtsp服务 nginx 配置rtsp服务
本文详细介绍了在Ubuntu系统上配置Nginx以提供RTSP服务的步骤。首先,安装编译工具和依赖包;其次,下载并编译Nginx及其rtsp模块;然后,在Nginx配置文件中添加RTSP服务器配置,并设置基本认证;接着,配置防火墙开放端口;
  目录