java 集合拆分多个集合
时间: 2023-11-18 12:53:49 浏览: 219
可以使用 Java 8 的 Stream API 来实现集合拆分。具体实现如下:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
int batchSize = 3;
List<List<Integer>> batches = new ArrayList<>();
for (int i = 0; i < list.size(); i += batchSize) {
int end = Math.min(list.size(), i + batchSize);
batches.add(list.subList(i, end));
}
```
上述代码中,我们将原始集合 `list` 拆分成了大小为 `batchSize` 的多个子集合,并将这些子集合存储在 `batches` 列表中。
相关问题
java怎么把一个集合按集合大小拆分成多个集合
可以使用Java 8的Stream API来实现将一个集合按照一定大小分割成多个集合的操作。具体实现代码如下:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
int batchSize = 3;
List<List<Integer>> batchList = new ArrayList<>();
IntStream.range(0, (list.size() + batchSize - 1) / batchSize)
.forEach(i -> batchList.add(list.subList(i * batchSize, Math.min((i + 1) * batchSize, list.size()))));
```
以上代码将一个包含10个元素的整数集合按照大小为3分割成多个子集合,存储在`batchList`中。其中,`IntStream`可以理解为一个整数流,用于生成一个包含子集合个数的整数范围,通过`forEach`方法遍历这个范围,将每个子集合添加到`batchList`中。`subList`方法用于从原始集合中截取指定范围的子集合。
java将大集合拆分成小集合 按照6 3 2 1做拆分 比如集合size为11拆分为6 3 2 集合size为14拆分为6 62
好的,针对你的问题,可以按照以下方式将一个大集合拆分成多个小集合:
1. 首先确定拆分的规则,例如你提到的按照6、3、2、1的方式进行拆分。
2. 然后根据规则计算出需要拆分成多少个小集合以及每个小集合的大小。
3. 遍历大集合,依次将元素放入小集合中,直到每个小集合的大小达到规定值。
4. 如果遍历完大集合后,还有一些元素未被放入小集合中,则可以将这些元素放入最后一个小集合中。
下面是一个简单的 Java 代码示例,演示如何将一个 List 拆分成多个小 List:
```java
public static List<List<String>> splitList(List<String> list, int... sizes) {
List<List<String>> result = new ArrayList<>();
int startIndex = 0;
for (int size : sizes) {
List<String> subList = new ArrayList<>();
for (int i = 0; i < size && startIndex < list.size(); i++) {
subList.add(list.get(startIndex++));
}
result.add(subList);
}
if (startIndex < list.size()) {
result.get(result.size() - 1).addAll(list.subList(startIndex, list.size()));
}
return result;
}
```
在这个示例中,我们使用可变参数来传递拆分的规则,例如 `splitList(list, 6, 3, 2, 1)` 表示需要将列表拆分成6、3、2、1四个小列表。在方法内部,我们按照规则遍历原始列表,依次将元素放入小列表中,并将小列表放入结果列表中。最后,如果还有一些元素未被放入小列表中,则将它们放入最后一个小列表中。
阅读全文