Java 中将大 List 拆分成小 List 的方法

在 Java 编程中,处理大数据集是常见的任务,尤其是在需要对数据进行操作和分析时。为了简化对大 List 的操作,一种有效的方式是将其拆分为多个小 List。下面,我们将探讨如何将一个大 List 拆分成每个包含 100 个元素的小 List,并通过示例代码进行说明。此外,我们还会用流程图和类图帮助理解这个过程。

拆分 List 的思路

我们可以通过遍历大 List,将元素按照固定数量分割成小 List,并将这些小 List 存储在一个 List 中。以下是实现步骤:

  1. 创建一个大 List,并添加数据。
  2. 初始化一个存储小 List 的容器。
  3. 使用循环遍历大 List,按照固定数量(100)拆分。
  4. 将拆分的小 List 添加到结果 List 中。

示例代码

下面的 Java 代码实现了上述逻辑:

import java.util.ArrayList;
import java.util.List;

public class ListSplitter {

    /**
     * 将大 List 拆分成小 List,每个小 List 包含指定数量的元素
     *
     * @param sourceList 源大 List
     * @param chunkSize  每个小 List 的大小
     * @return 拆分后的 List 的 List
     */
    public static List<List<Object>> splitList(List<Object> sourceList, int chunkSize) {
        List<List<Object>> result = new ArrayList<>();

        for (int i = 0; i < sourceList.size(); i += chunkSize) {
            int end = Math.min(i + chunkSize, sourceList.size());
            result.add(new ArrayList<>(sourceList.subList(i, end)));
        }

        return result;
    }

    public static void main(String[] args) {
        List<Object> largeList = new ArrayList<>();
        // 模拟填充大 List
        for (int i = 1; i <= 1000; i++) {
            largeList.add("Element " + i);
        }

        List<List<Object>> splitLists = splitList(largeList, 100);

        System.out.println("Total sublists: " + splitLists.size());
    }
}
  • 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.
  • 32.
  • 33.
  • 34.
  • 35.

在上述代码中,splitList 方法接收一个大 List 和一个每个子 List 的大小,然后返回包含多个小 List 的 List。主方法示范如何创建一个大的 List 并使用 splitList 方法拆分它。

流程图

以下是整个拆分过程的流程图:

开始 创建大 List 初始化结果 List 遍历大 List 是否还有更多元素? 创建小 List 将小 List 添加到结果 List 返回结果 List 结束

类图

为了更好地理解这个过程,我们可以使用类图来表示:

ListSplitter +List splitList(List sourceList, int chunkSize) +void main(String[] args)