亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

如何在java 8 map中使用stream

瀏覽:101日期:2022-09-02 13:38:28

簡介

Map是java中非常常用的一個集合類型,我們通常也需要去遍歷Map去獲取某些值,java 8引入了Stream的概念,那么我們怎么在Map中使用Stream呢?

基本概念

Map有key,value還有表示key,value整體的Entry。

創建一個Map:

Map<String, String> someMap = new HashMap<>();

獲取Map的entrySet:

Set<Map.Entry<String, String>> entries = someMap.entrySet();

獲取map的key:

Set<String> keySet = someMap.keySet();

獲取map的value:

Collection<String> values = someMap.values();

上面我們可以看到有這樣幾個集合:Map,Set,Collection。

除了Map沒有stream,其他兩個都有stream方法:

Stream<Map.Entry<String, String>> entriesStream = entries.stream();Stream<String> valuesStream = values.stream();Stream<String> keysStream = keySet.stream();

我們可以通過其他幾個stream來遍歷map。

使用Stream獲取map的key

我們先給map添加幾個值:

someMap.put('jack','20');someMap.put('bill','35');

上面我們添加了name和age字段。

如果我們想查找age=20的key,則可以這樣做:

Optional<String> optionalName = someMap.entrySet().stream().filter(e -> '20'.equals(e.getValue())).map(Map.Entry::getKey).findFirst(); log.info(optionalName.get());

因為返回的是Optional,如果值不存在的情況下,我們也可以處理:

optionalName = someMap.entrySet().stream().filter(e -> 'Non ages'.equals(e.getValue())).map(Map.Entry::getKey).findFirst(); log.info('{}',optionalName.isPresent());

上面的例子我們通過調用isPresent來判斷age是否存在。

如果有多個值,我們可以這樣寫:

someMap.put('alice','20'); List<String> listnames = someMap.entrySet().stream().filter(e -> e.getValue().equals('20')).map(Map.Entry::getKey).collect(Collectors.toList()); log.info('{}',listnames);

上面我們調用了collect(Collectors.toList())將值轉成了List。

使用stream獲取map的value

上面我們獲取的map的key,同樣的我們也可以獲取map的value:

List<String> listAges = someMap.entrySet().stream().filter(e -> e.getKey().equals('alice')).map(Map.Entry::getValue).collect(Collectors.toList()); log.info('{}',listAges);

上面我們匹配了key值是alice的value。

總結

Stream是一個非常強大的功能,通過和map相結合,我們可以更加簡單的操作map對象。

本文的例子https://github.com/ddean2009/learn-java-streams/tree/master/stream-formap

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 久久精品嫩草影院 | 亚洲图片色 | 成人淫片免费视频95视频 | 成人网在线看 | 在线观看黄色小视频 | 亚洲第一黄色网 | 日韩欧美精品一区二区 | 亚洲精品中文字幕乱码 | 国产做爰一区二区 | 国产女主播在线 | 亚洲1卡2卡三卡3卡4卡网站 | 日韩免费观看视频 | 亚洲综合91社区精品福利 | 日本二本三本二区 | 特级黄色生活片 | 激情网址在线观看 | 国产小视频在线播放 | 国产日韩欧美一区二区 | 免费大学生国产在线观看p 免费大黄网站在线观看 | 成熟女人特级毛片www免费 | 日本特黄特色aaa大片免费欧 | 久久亚洲一级毛片 | 九九九九精品视频在线播放 | 久草免费在线播放 | 一线高清视频在线观看www国产 | 古代级a毛片在线 | 欧美久久久久欧美一区 | 成人做爰免费视频免费看 | 一级做a爰片性色毛片新版的 | 亚洲 欧美 国产 中文 | 国产自精品在线 | 亚洲欧美日韩另类在线 | 亚洲伊人影院 | 国产免费一区二区在线看 | 亚洲国产日韩在线观频 | 在线观看h片 | 久草首页在线 | 特黄特级a级黄毛片免费观看多人 | 成人福利在线播放 | 亚洲综合区小说区激情区噜噜 | 国产欧美在线观看一区 |