我有一堂课

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为值。

08-28 07:24