Product p1 = Product.builder() .id("1") .name("蒙牛") .price("12") .build(); Product p2 = Product.builder() .id("2") .name("伊利") .price("12") .build(); Product p3 = Product.builder() .id("1") .name("蒙牛") .price("13") .build(); List<Product> list = Lists.newArrayList(); list.add(p1); list.add(p2); list.add(p3); Map<String, List<Product>> map = list.stream().filter(product -> { return Objects.nonNull(product.getId()); }).collect(Collectors.groupingBy(Product::getId)); System.out.println(map);// {1=[Product(id=1, name=蒙牛, price=12), Product(id=1, name=蒙牛, price=13)], 2=[Product(id=2, name=伊利, price=12)]}