map 排序 in java 8

在日常使用中,我们对map 的key 或者value 进行排序是很平常的,在 java 中,我们也会使用带 Stream's api 和 lambdas表达式来对 map 进行排序。

先准备一点数据,数据是我复制过来的,毕竟懒得造:

195735_Ye3e_2277632.png

然后我们输出看看:

{Google=Sundar Pichai, Apple=Tim Cook, SpaceX=Elon Musk, Twitter=Jack Dorsey, Microsoft=Satya Nadella, Amazon=Jeff Bezos, Oracle=Mark Hurd, Facebook=Mark Zuckerberg}
因为 map 是根据 hash 的结果进行放入的,所以你看到的和插入顺序并没有关系。

然后我们对这个 map 根据 key 来排序,这里使用了 LinkedHashMap 来保存排序的结果

使用了 stream 的 sorted 方法和 Map.Entry.comparingByKey 

200114_93mb_2277632.png

输出:

{Amazon=Jeff Bezos, Apple=Tim Cook, Facebook=Mark Zuckerberg, Google=Sundar Pichai, Microsoft=Satya Nadella, Oracle=Mark Hurd, SpaceX=Elon Musk, Twitter=Jack Dorsey}
然后我们根据 value 排序:

使用了 stream 的 sorted 方法和 Map.Entry.comparingByValue 

200351_gnMI_2277632.png

输出:

{SpaceX=Elon Musk, Twitter=Jack Dorsey, Amazon=Jeff Bezos, Oracle=Mark Hurd, Facebook=Mark Zuckerberg, Microsoft=Satya Nadella, Google=Sundar Pichai, Apple=Tim Cook}

如果想要对 sorted 方法里面的进行逆序输出,可以使用 Collections.reverseOrder 方法:

200539_hOBl_2277632.png

输出:

{Twitter=Jack Dorsey, SpaceX=Elon Musk, Oracle=Mark Hurd, Microsoft=Satya Nadella, Google=Sundar Pichai, Facebook=Mark Zuckerberg, Apple=Tim Cook, Amazon=Jeff Bezos}
 

参考地址:

https://examples.javacodegeeks.com/core-java/java-8-map-sorting-example/

 

转载于:https://my.oschina.net/u/2277632/blog/1626521

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值