我有一堂课
public class ProductStock {
private Long id;
private Integer quantity;
}
和类似的清单
List<ProductStock> productStocks =
{
ProductStock(1, 1),
ProductStock(2, 1),
ProductStock(3, 1),
ProductStock(1, 1),
ProductStock(4, 1),
ProductStock(5, 1),
ProductStock(2, 1)
}
我想按ID对productStocks分组。
像贝娄一样转换此列表的最佳方法是什么
productStocks =
{
ProductStock(1, 2),
ProductStock(2, 2),
ProductStock(3, 1),
ProductStock(4, 1),
ProductStock(5, 1)
}
最佳答案
我会那样做:
Map<Long, Integer> counting = productStocks.stream().collect(
Collectors.groupingBy(ProductStock::getId, Collectors.counting()));
创建一个新的Map,以id为键,Count为值。