Java对map做count统计、累加、求和、排序、分组等操作

lambda java 文章 2020-08-03 15:09 6755 0 全屏看文

AI助手支持GPT4.0

初始数据

List<Animal> AnimalList = Lists.newArrayList(new Animal("dog", 6),
        new Animal("dog", 6),
        new Animal("cat", 7), new Animal("cat", 7),
        new Animal("cat", 7), new Animal("pig",8));


1)计数

Map<String, Long> map = AnimalList.stream().
   collect(Collectors.groupingBy(Animal::getName,Collectors.counting()));

输出结果:{cat=3, dog=2, pig=1}


2)  排序(逆序)

map.entrySet().stream().sorted(Map.Entry.<String, Long>comparingByValue().reversed())
         .forEachOrdered(System.out::println);


3) 累加求和

Map<String, Integer> sumMap = AnimalList.stream().collect.
(Collectors.groupingBy(Animal::getName, Collectors.summingInt(Animal::getPrice)));

输出结果是:{cat=21, dog=12, pig=8}


4) 分组:

Map<String, List<Integer>> groupMap = 
AnimalList.stream().collect(Collectors.groupingBy(Animal::getName, 
Collectors.mapping(Animal::getPrice, Collectors.toList())));


-EOF-

AI助手支持GPT4.0


国内超级便宜服务器

摸鱼人热门新闻聚合

钻级赞助商 我要加入

开发者在线工具

第三方支付技术请加QQ群

相关文章
使用lambda语法对FieldInfo对象数组 使用columnName属性排序并输出
使用lambda语法对对象集合 统计属性相同的个数大于2的数据
Java的Lambda的代码,用最少最短的代码量实现冒泡排序
使用lambda语法对FieldInfo对象集合 使用columnName属性排序并输出
java lambda 使用数组里的对象的多个属性拼接作为key 生成map
随便看看
企业微信通讯录账号被管理员误/恶意删除,怎么办? 8003
问题? 7237
如何快速搭建抽奖助手小程序(无需代码知识) 5024
许涛 大哥在吗, 要解冻小程序的时候提示信息主体不一致, 能帮忙看下吗? 5978
小程序搜一搜全称搜索不显示 麻烦解决一下!谢谢 5501
我的小程序广告收款主体是个体工商户,每个月邮寄两次发票很是麻烦,我年底的时候打包邮寄一次可以么? 5198
如何解决渲染层网络错误Failed to load media? 16551
小程序找号找回 释放昵称? 2415
我的小程序广告主收入5301,实际进账4406,是怎么回事呀? 2497
删除部分微信用户个人数据的通知,怎么删除? 5537