這篇文章給大家介紹怎么在java8中使用stream 操作map,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:主機域名、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、平邑網(wǎng)站維護、網(wǎng)站推廣。
1、map 根據(jù)value排序
Mapmap =new HashMap<>(); map.put("one", 0.08); map.put("two", 0.1); map.put("three", 0.2); map.put("four", 0.91);
上面是項目中的一個中間結(jié)果,我們需要對這個map根據(jù)value值倒序排序,下面給出工具類:
public> Map sortByValue(Map map) { Map result = new LinkedHashMap<>(); map.entrySet().stream() .sorted(Map.Entry. comparingByValue() .reversed()).forEachOrdered(e -> result.put(e.getKey(), e.getValue())); return result; }
當然如果我們想根據(jù)map的key進行排序,需要對上面的工具類進行小小的修改,代碼如下:
public, V > Map sortByKey(Map map) { Map result = new LinkedHashMap<>(); map.entrySet().stream() .sorted(Map.Entry. comparingByKey() .reversed()).forEachOrdered(e -> result.put(e.getKey(), e.getValue())); return result; }
我們可以看到,如果我們需要根據(jù)key排序,就需要讓key 繼承 Comparable ,也就說我們需要對待排序的字段繼承 Comparable接口。另一個問題就是,上面的這種寫法排序效果是 降序排序,如果我們需要升序排序的話,只需要將上面的.reversed()關(guān)鍵字限制去掉即可。
public> Map sortByValue(Map map) { Map result = new LinkedHashMap<>(); map.entrySet().stream() .sorted(Map.Entry. comparingByValue() ).forEachOrdered(e -> result.put(e.getKey(), e.getValue())); return result; }
關(guān)于怎么在java8中使用stream 操作map就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。