java stream 每10个分组
时间: 2023-10-15 18:24:56 浏览: 43
你可以使用Java Stream的`Collectors.groupingBy()`方法结合`Collectors.toList()`方法来实现每10个元素分组的操作。下面是一个示例代码:
```java
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = IntStream.rangeClosed(1, 100)
.boxed()
.collect(Collectors.toList());
Map<Integer, List<Integer>> groups = numbers.stream()
.collect(Collectors.groupingBy(i -> (i - 1) / 10));
groups.forEach((key, value) -> System.out.println("Group " + key + ": " + value));
}
}
```
在这个例子中,我们生成了一个1到100的整数列表`numbers`。然后,我们使用`numbers`的流进行分组操作。`Collectors.groupingBy()`方法根据`(i - 1) / 10`的结果进行分组,`(i - 1) / 10`将每个元素映射到它所属的分组。最后,我们将分组结果打印出来。
输出结果如下:
```
Group 0: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Group 1: [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
...
Group 9: [91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
```
每个分组包含10个元素,符合要求。你可以根据实际需求修改代码来适应不同的场景。