中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在java 8 map中使用stream的方法

發布時間:2020-07-31 10:20:05 來源:億速云 閱讀:974 作者:小豬 欄目:編程語言

這篇文章主要講解了在java 8 map中使用stream的方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

簡介

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。

看完上述內容,是不是對在java 8 map中使用stream的方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玛纳斯县| 三原县| 建德市| 新丰县| 小金县| 高州市| 桦川县| 永宁县| 东海县| 彝良县| 延津县| 昌吉市| 定南县| 通江县| 静乐县| 甘洛县| 枣庄市| 宁强县| 诸暨市| 沅陵县| 沅江市| 宜宾县| 和政县| 康乐县| 武胜县| 宜章县| 崇仁县| 嘉祥县| 广饶县| 集安市| 米泉市| 信宜市| 兴和县| 峨边| 毕节市| 江口县| 绥化市| 佛坪县| 嘉禾县| 凉山| 杨浦区|