创建排序字段带null的List(排序字段为User.name)
List<User> nList = list.stream().sorted( Comparator.comparing(User::getName, Comparator.nullsFirst(String::compareTo))) .collect(Collectors.toList());
Comparator.nullsFirst | 排序字段为null的对象放在排序后的List最后面 |
Comparator.nullsLast | 排序字段为null的对象放在排序后的List最前面 |
Collectors.groupingBy根据一个或多个属性对集合中的项目进行分组
数据准备:
public Product(Long id, Integer num, BigDecimal price, String name, String category) {
this.id = id;
this.num = num;
this.price = price;
this.name = name;
this.category = category;
}
Product prod1 = new Product(1L, 1, new BigDecimal("15.5"), "面包", "零食");
Product prod2 = new Product(2L, 2, new BigDecimal("20"), "饼干", "零食");
Product prod3 = new Product(3L, 3, new BigDeci