map 排序 in java 8

2018-03-01 11:04:09来源:oschina作者:woshixin人点击

分享

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


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



然后我们输出看看:


{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



输出:


{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



输出:


{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 方法:



输出:


{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/


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台