stream流对List集合分组并统计数据量大小
时间: 2023-02-09 21:17:52 浏览: 1295
可以使用 Java 8 的 Stream API 来对 List 集合进行分组并统计数据量大小。
首先, 需要定义一个分组函数, 将 List 中的元素按照某个条件分组:
```
Map<String, List<Integer>> groupBy(List<Integer> list) {
return list.stream().collect(Collectors.groupingBy(i -> i > 0 ? "positive" : "negative"));
}
```
然后, 可以使用这个函数对 List 集合进行分组:
```
List<Integer> list = Arrays.asList(-1, -2, 3, 4, 5);
Map<String, List<Integer>> groups = groupBy(list);
// 输出: {negative=[-1, -2], positive=[3, 4, 5]}
System.out.println(groups);
```
最后, 可以使用 `Map.entrySet()` 方法获取分组后的每个组, 并使用 `List.size()` 方法统计数据量大小:
```
for (Map.Entry<String, List<Integer>> entry : groups.entrySet()) {
String key = entry.getKey();
List<Integer> values = entry.getValue();
int size = values.size();
System.out.println(key + ": " + size);
}
// 输出:
// negative: 2
// positive: 3
```
阅读全文