JAVA stream groupingBy 分组、排序
groupingBy得到的结果一般为Map<String, List>形式,之前碰到有人问对得到的Map<String, List>需要对key自然排序
对groupingBy结果key排序
@Data
@AllArgsConstructor
public class Product {
private String name;
private int count;
}
public static void main(String[] args) {
Product product = new Product("h", 2);
Product product1 = new Product("a", 4);
Product product2 = new Product("a", 2);
Product product3 = new Product("c", 4);
Product product4 = new Product("u", 5);
Product product5 = new Product("u", 2);
List<Product> list = asList(product, product1, product2, product3, product4, product5);
TreeMap collects = list.stream().collect(Collectors.groupingBy(Product::getName, TreeMap::new, Collectors.toList()));
}
其实就是用利用TreeMap的排序特性可以使得key是按自然排序
来源:CSDN
作者:huboson2012
链接:https://blog.csdn.net/huboson2012/article/details/103598031