Map如何根據(jù)key指定條件進(jìn)行過濾篩選
Map根據(jù)key指定條件進(jìn)行過濾篩選
public static void main(String[] args) {
Map<String,String> map = new HashMap<>();
map.put("web_1","web1");
map.put("web_2","web2");
map.put("app_1","app1");
map.put("app_2","app2");
//根據(jù)key的指定前綴篩選Map
map.entrySet().stream().filter(tmMap -> tmMap.getKey().substring(0,3).equals("web")).forEach(tmMap->{
System.out.println(tmMap.toString());
});
}控制臺:

通過給定的key篩選出只含有這些key的map
最近做項(xiàng)目遇到一個需求:
有一個list,里面的元素包含于一個map的key值,然后得出只含有這個list元素的map。
網(wǎng)上查了很多資料,都沒有查到我想要的結(jié)果,最后還是在外國網(wǎng)站StackOverflow上找到的答案,不得不說這個外國網(wǎng)站里真是各種大神?。?/p>
其實(shí)總結(jié)下來只有一行代碼
map.keySet().retainAll(list);
但是需要注意
執(zhí)行完這句代碼后map會跟著發(fā)生變化,如果有多個不同的list,想通過這些list和原有的map去得到不同的篩選完的map,就得像下面這樣做了:
Map<String, Object> newMap = new HashMap<String, Object>(map); newMap.keySet().retainAll(list);
將上面這兩句代碼封裝成方法,最后返回newMap就可以了。
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring項(xiàng)目自定義全局響應(yīng)處理器統(tǒng)一處理響應(yīng)結(jié)果的實(shí)現(xiàn)步驟
本文詳細(xì)描述了如何通過@ControllerAdvice和ResponseBodyAdvice在SpringMVC項(xiàng)目中創(chuàng)建自定義響應(yīng)處理器,以及如何使用Wrapper類包裝和標(biāo)準(zhǔn)化返回結(jié)果,感興趣的朋友跟隨小編一起看看吧2025-01-01
IntelliJ IDEA配置java環(huán)境及解決IDEA不能直接運(yùn)行單個JAVA文件的問題
這篇文章主要介紹了IntelliJ IDEA配置java環(huán)境及解決IDEA不能直接運(yùn)行單個JAVA文件的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
Spring security認(rèn)證兩類用戶代碼實(shí)例
這篇文章主要介紹了Spring security認(rèn)證兩類用戶代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06
java?9大性能優(yōu)化經(jīng)驗(yàn)總結(jié)
這篇文章主要介紹了java?9大性能優(yōu)化經(jīng)驗(yàn)總結(jié),包括:Java代碼優(yōu)化,數(shù)據(jù)庫優(yōu)化,分布式緩存,異步化,Web前段,搜索引擎優(yōu)化等需要的朋友可以參考下2023-02-02
Springmvc獲取前臺請求數(shù)據(jù)過程解析
這篇文章主要介紹了Springmvc獲取前臺請求數(shù)據(jù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07
MyBatis中foreach標(biāo)簽的collection屬性的取值方式
這篇文章主要介紹了MyBatis中foreach標(biāo)簽的collection屬性的取值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08

