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

lambda java 文章 2020-08-03 15:09 6948 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语法对对象集合 统计属性相同的个数大于2的数据
java lambda 使用数组里的对象的多个属性拼接作为key 生成map
Java对map做count统计、累加、求和、排序、分组等操作
使用lambda语法对FieldInfo对象数组 使用columnName属性排序并输出
使用lambda语法对ExcelInput对象集合 统计getExcelA属性相同的个数
随便看看
微信开放平台跟公众平台有什么区别? 3592
怎么添加小程序支付功能? 4493
教育科技公司申请微信支付被拒绝? 4774
微信公众号免300认证教程 5866
小程序已经上线,作为管理员无法在小程序数据助手查看数据? 5276
小程序广告组件通过审核,但是小程序内没有显示广告? 5040
企业微信通讯录账号被管理员误/恶意删除,怎么办? 9534
问题? 9015
如何快速搭建抽奖助手小程序(无需代码知识) 6148
许涛 大哥在吗, 要解冻小程序的时候提示信息主体不一致, 能帮忙看下吗? 7445