map 排序 in java 8

在平常使用中,咱們對map 的key 或者value 進行排序是很日常的,在 java 中,咱們也會使用帶 Stream's api 和 lambdas表達式來對 map 進行排序。java

先準備一點數據,數據是我複製過來的,畢竟懶得造:api

而後咱們輸出看看:code

{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 來保存排序的結果hash

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

輸出:io

{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

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

輸出:map

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

相關文章
相關標籤/搜索