java list分成按10个一组
时间: 2023-08-12 20:04:33 浏览: 136
您可以使用Java 8的Stream API和Collectors.groupingBy()方法来将List分成按10个一组的子列表。以下是示例代码:
```java
List<String> list = Arrays.asList("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k");
List<List<String>> result = new ArrayList<>();
int chunkSize = 10;
Map<Integer, List<String>> map = IntStream.range(0, list.size())
.boxed()
.collect(Collectors.groupingBy(i -> i / chunkSize, Collectors.mapping(list::get, Collectors.toList())));
result.addAll(map.values());
System.out.println(result);
```
这将根据原始List的大小将其分成若干个子列表,每个子列表包含10个元素(最后一个子列表可能包含少于10个元素)。输出结果将是:
```
[[a, b, c, d, e, f, g, h, i, j], [k]]
```
请注意,上面示例代码中使用了Collectors.mapping()方法来将List中的索引转换为元素本身。
相关问题
java list分成10组
你好,可以使用Java 8的Stream API和Collectors工具类来将List分成10组。以下是示例代码:
```java
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class ListPartitioner {
public static <T> List<List<T>> partition(List<T> list, int size) {
return IntStream.range(0, list.size())
.boxed()
.collect(Collectors.groupingBy(index -> index / size))
.values()
.stream()
.map(indices -> indices.stream().map(list::get).collect(Collectors.toList()))
.collect(Collectors.toList());
}
}
```
这个方法接受两个参数:一个List和一个整数,表示每个分组的大小。它将List中的元素根据指定的大小分成多个子列表,并返回一个包含这些子列表的List。
用 java 写:将一个List<Integer>排序后分割,连续的分成一组
您好,以下是将一个 `List<Integer>` 排序后分割,连续的分成一组的 Java 代码:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(Arrays.asList(1, 3, 2, 6, 5, 7, 8, 9, 10));
list.sort(Integer::compareTo);
List<List<Integer>> result = new ArrayList<>();
List<Integer> temp = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
if (temp.isEmpty() || list.get(i) == temp.get(temp.size() - 1) + 1) {
temp.add(list.get(i));
} else {
result.add(temp);
temp = new ArrayList<>();
temp.add(list.get(i));
}
}
result.add(temp);
System.out.println(result);
}
}
```
首先创建一个 `List<Integer>` 对象并初始化,然后使用 `sort` 方法对其进行排序。接着创建 `List<List<Integer>>` 对象用来存储分割后的结果,以及一个 `List<Integer>` 用来存储当前连续的一组数。然后使用 `for` 循环遍历排序后的列表,如果当前元素是连续的,则将其加入到 `temp` 列表中,否则将 `temp` 列表加入到 `result` 列表中,并重新创建一个空的 `temp` 列表来存储下一个连续的一组数。循环结束后,将最后一个 `temp` 列表加入到 `result` 列表中即可。
输出结果为:`[[1, 2, 3], [5, 6, 7, 8, 9, 10]]`