JAVA stream groupingBy 分组、排序

泄露秘密 提交于 2019-12-21 04:37:05

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是按自然排序

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!