java8写一个按n个key进行break的共通方法
时间: 2024-05-14 13:14:59 浏览: 18
以下是一个简单的按 n 个 key 进行 break 的通用方法的 Java 8 实现:
```java
public static <T> List<List<T>> breakList(List<T> list, int n) {
return IntStream.range(0, list.size())
.boxed()
.collect(Collectors.groupingBy(i -> i / n))
.values()
.stream()
.map(indices -> indices.stream().map(list::get).collect(Collectors.toList()))
.collect(Collectors.toList());
}
```
这个方法使用 Java 8 中的 IntStream 和 Stream API 来实现。它将原始的 List 对象分为多个子 List,每个子 List 包含 n 个元素。
使用这个方法很简单,只需要传入一个 List 对象和一个整数 n,它就会返回一个包含多个子 List 的 List 对象。每个子 List 包含 n 个元素,除了最后一个子 List,它可能包含少于 n 个元素。
例如,如果你有一个包含 10 个元素的 List 对象,你可以使用以下代码将它分为每个包含 3 个元素的子 List:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<List<Integer>> subLists = breakList(list, 3);
```
这将返回一个包含 4 个子 List 的 List 对象,每个子 List 包含 3 个元素,除了最后一个子 List,它包含 1 个元素:
```java
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)