要将一个 List 数组每 1000 个元素进行拆分,可以使用 Java 的 Stream 流和 Collectors.toList() 方法来实现。下面是一个示例代码:\n\njava\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.stream.Collectors;\nimport java.util.stream.IntStream;\n\npublic class SplitListExample {\n public static void main(String[] args) {\n List<Integer> list = IntStream.rangeClosed(1, 9999)\n .boxed()\n .collect(Collectors.toList());\n\n List<List<Integer>> subLists = splitList(list, 1000);\n\n System.out.println(subLists.size()); // 输出结果为 10\n System.out.println(subLists.get(0).size()); // 输出结果为 1000\n System.out.println(subLists.get(9).size()); // 输出结果为 999\n }\n\n public static <T> List<List<T>> splitList(List<T> list, int batchSize) {\n return IntStream.range(0, (list.size() + batchSize - 1) / batchSize)\n .mapToObj(i -> list.subList(i * batchSize, Math.min((i + 1) * batchSize, list.size())))\n .collect(Collectors.toList());\n }\n}\n\n\n在示例代码中,首先创建一个包含 1 到 9999 的整数的 List。然后使用 splitList 方法将这个 List 按照每 1000 个元素进行拆分。拆分后的结果是一个 List 的 List,每个子 List 包含 1000 个元素,除了最后一个子 List 可能包含少于 1000 个元素。\n\nsplitList 方法使用 IntStream.range 生成一个 0 到 n 的整数流,其中 n 是拆分后的子 List 数量。然后使用 mapToObj 将每个整数映射为对应的子 List。在映射过程中,使用 subList 方法从原始 List 中获取每个子 List 的元素范围。最后,使用 Collectors.toList 将子 List 收集到一个 List 中并返回。\n\n运行示例代码,可以看到成功将 List 数组按照每 1000 个元素进行拆分。

Java 使用 Stream 流将 List 数组每 1000 个元素拆分

原文地址: https://www.cveoy.top/t/topic/qhpU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录