javalist 对象集合拆成多个
时间: 2023-11-08 13:01:56 浏览: 120
可以使用Java Stream API将一个Java List对象集合拆分成多个子集合。下面是一个示例代码:
```java
List<String> list = Arrays.asList("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k");
int chunkSize = 3;
List<List<String>> chunks = IntStream.range(0, (list.size() + chunkSize - 1) / chunkSize)
.mapToObj(i -> list.subList(i * chunkSize, Math.min((i + 1) * chunkSize, list.size())))
.collect(Collectors.toList());
System.out.println(chunks);
```
这里将一个包含11个元素的List对象拆分成了3个子集合,每个子集合包含3个或更少的元素。输出结果如下:
```
[[a, b, c], [d, e, f], [g, h, i], [j, k]]
```
你可以根据自己的需求修改chunkSize的值来调整子集合的大小。
相关问题
javalist 对象集合拆成多个。
要将一个 Java List 对象分成多个子 List,可以使用 Java 8 中的 Stream API 和 Collectors 工具类来实现。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ListSplitter {
public static void main(String[] args) {
List<String> originalList = new ArrayList<>();
originalList.add("A");
originalList.add("B");
originalList.add("C");
originalList.add("D");
originalList.add("E");
int chunkSize = 2; // 指定每个子 List 的大小
// 使用 Stream API 将原始 List 分成多个子 List
List<List<String>> subLists = Stream.iterate(0, n -> n + chunkSize)
.limit((long) Math.ceil((double) originalList.size() / chunkSize))
.map(n -> originalList.subList(n, Math.min(n + chunkSize, originalList.size())))
.collect(Collectors.toList());
// 打印每个子 List 的元素
subLists.forEach(System.out::println);
}
}
```
这个示例代码将一个包含 5 个元素的 List 对象分成了 3 个子 List,每个子 List 的大小为 2。输出结果如下:
```
[A, B]
[C, D]
[E]
```
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>> 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` 列表中。