java stream流分组并统计
时间: 2025-02-01 21:28:03 浏览: 47
### 使用Java Stream API进行分组并统计
对于使用Java Stream API来实现按照特定字段分组并对每组的数量进行统计的需求,可以利用`Collectors.groupingBy()`方法来进行分组操作,并结合`Collectors.counting()`完成计数工作[^3]。
下面是一个简单的例子展示如何基于产品ID对销售记录列表进行分组,并计算每个产品的总销量:
```java
import java.util.*;
import java.util.stream.Collectors;
class SaleRecord {
private final String productId;
private final double quantitySold;
public SaleRecord(String productId, double quantitySold) {
this.productId = productId;
this.quantitySold = quantitySold;
}
// Getters...
}
public class GroupAndCountExample {
public static void main(String[] args) {
List<SaleRecord> salesRecords = Arrays.asList(
new SaleRecord("A", 10),
new SaleRecord("B", 20),
new SaleRecord("A", 5),
new SaleRecord("C", 7)
);
Map<String, Long> result = salesRecords.stream()
.collect(Collectors.groupingBy(SaleRecord::getProductId,
Collectors.counting()));
System.out.println(result);
}
}
```
上述代码创建了一个名为`SaleRecord`的类表示单条销售记录,其中包含了产品ID (`productId`) 和 销售数量(`quantitySold`)两个属性。接着定义了一串模拟数据作为输入源,在此基础上调用了`.stream().collect(...)`链式表达式实现了按`productId`分组以及各组内元素数目统计的功能。
阅读全文
相关推荐


















