java 集合拆分多个集合
时间: 2023-11-18 16:53:49 浏览: 104
可以使用 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` 列表中。
相关问题
javalist 对象集合拆成多个
可以使用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的值来调整子集合的大小。
java如何将一个LIST拆分成多个List
可以使用Java 8的Stream API来实现拆分一个List为多个List。具体实现如下:
```java
List<String> sourceList = new ArrayList<>();
// 初始List
int partitionSize = 10; // 每个子List的大小
List<List<String>> partitionedList = IntStream.range(0, sourceList.size())
.boxed()
.collect(Collectors.groupingBy(index -> index / partitionSize))
.values()
.stream()
.map(indices -> indices.stream().map(sourceList::get).collect(Collectors.toList()))
.collect(Collectors.toList());
//拆分后的多个子List
```
其中,`partitionSize`是每个子List的大小,`sourceList`是要拆分的原始List,`partitionedList`是拆分后的多个子List。
上述代码中,首先使用`IntStream.range(0, sourceList.size())`生成一个包含0到(sourceList.size()-1)的整数流,然后通过`boxed()`将整数流转换成包装类Integer类型的流。接着,使用`Collectors.groupingBy(index -> index / partitionSize)`按照子List的索引进行分组,分组后得到一个Map<Integer, List<Integer>>,其中key表示子List的索引,value为该子List包含元素的索引集合。然后将Map的values转换成一个流,再通过`map(indices -> indices.stream().map(sourceList::get).collect(Collectors.toList()))`将每个子List的索引集合转换成子List本身。最后,使用`Collectors.toList()`将所有子List收集到一个List中。