国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java Map 通過 key 或者 value 過濾

timger / 1416人閱讀

摘要:今天寫根過濾的時(shí)候一下子有點(diǎn)愣眼,先是想到用原生的循環(huán)查出來,但是覺得太,后面思考了一下可以用的,寫完了,又發(fā)現(xiàn)有現(xiàn)成的方法,這里一一列出來,供參考使用。

今天寫根過濾的時(shí)候一下子有點(diǎn)愣眼,先是想到用 Java 原生的 map 循環(huán)查出來,但是覺得太 low, 后面思考了一下可以用 Java8 的 Lambda,寫完了,又發(fā)現(xiàn) Google Guava 有現(xiàn)成的方法,這里一一列出來,供參考使用。

首先提示,如果照搬我的代碼的話別忘了引這些依賴


        
            junit
            junit
            4.12
            test
            
                
                    org.hamcrest
                    hamcrest-core
                
            
        

        
            org.hamcrest
            hamcrest-library
            1.3
            test
        

        
            com.google.guava
            guava
            25.1-jre
        
filter by key
public class FilterMapByKeyTest {
    private Map WEEK = new HashMap<>();

    @Before
    public void setUp () {
        WEEK.put(1, "Monday");
        WEEK.put(2, "Tuesday");
        WEEK.put(3, "Wednesday");
        WEEK.put(4, "Thursday");
        WEEK.put(5, "Friday");
        WEEK.put(6, "Saturday");
        WEEK.put(7, "Sunday");
    }

    /**
     * Java 8之前的版本
     */
    @Test
    public void filterMapByKey () {
        Map map = new HashMap<>();
        for (Map.Entry entry : WEEK.entrySet()) {
            if (entry.getKey() <= 3) {
                map.put(entry.getKey(), entry.getValue());
            }
        }
        assertThat(map.keySet(), contains(1, 2, 3));
    }

    /**
     * Java 8 Lambda
     */
    @Test
    public void filterMapByKeyJava8Lambda () {
        Map map = WEEK.entrySet().stream().filter(r -> r.getKey() <= 3)
                        .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
        assertThat(map.keySet(), contains(1, 2, 3));
    }

    /**
     * Google Guava
     */
    @Test
    public void filterMapByKeyGuava () {
        Map map = Maps.filterKeys(WEEK, r -> r <= 3);
        assertThat(map.keySet(), contains(1, 2, 3));
    }

}
filter by value
public class FilterMapByValueTest {
    private Map WEEK = new HashMap<>();

    @Before
    public void setUp () {
        WEEK.put(1, "Monday");
        WEEK.put(2, "Tuesday");
        WEEK.put(3, "Wednesday");
        WEEK.put(4, "Thursday");
        WEEK.put(5, "Friday");
        WEEK.put(6, "Saturday");
        WEEK.put(7, "Sunday");
    }

    /**
     * Java 8之前的版本
     */
    @Test
    public void filterMapByValue () {
        Map map = new HashMap<>();
        for (Map.Entry entry : WEEK.entrySet()) {
            if (entry.getValue().startsWith("S")) {
                map.put(entry.getKey(), entry.getValue());
            }
        }
        assertThat(map.values(), contains("Saturday","Sunday"));
    }

    /**
     * Java 8 Lambda
     */
    @Test
    public void filterMapByValueJava8Lambda () {
        Map map = WEEK.entrySet().stream().filter(r -> r.getValue().startsWith("S"))
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
        assertThat(map.values(), contains("Saturday","Sunday"));
    }

    /**
     * Google Guava
     */
    @Test
    public void filterMapByValueGuava () {
        Map map = Maps.filterValues(WEEK, r -> r.startsWith("S"));
        assertThat(map.values(), contains("Saturday","Sunday"));
    }
}

如果覺得內(nèi)容還不錯(cuò),可以關(guān)注一下我哦
微信公眾號(hào):志哥 (ID: zhige-me)
期待與你相遇,一同成長(zhǎng)前行!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/71413.html

相關(guān)文章

  • kotlin學(xué)習(xí)筆記-異常好玩的list集合總結(jié)

    摘要:可能是最流行的集合類型。它是一個(gè)范性有序的集合。一個(gè)無序并不支持重復(fù)的集合。接口繼承接口,集合中可以存放重復(fù)對(duì)象。集合類提供了,等高階函數(shù)去處理。我們聲明一個(gè)集合或者數(shù)組,可以轉(zhuǎn)換成相應(yīng)類型的集合。調(diào)用轉(zhuǎn)換為可變集合。 不積跬步無以至千里,不積小流無以成江海 先看看Kotlin中for循環(huán)的遍歷 fun testList(){ var StringVal = 12_...

    RebeccaZhong 評(píng)論0 收藏0
  • Spring Cloud Gateway修改請(qǐng)求和響應(yīng)body的內(nèi)容

    摘要:歡迎訪問我的歡迎訪問我的內(nèi)容所有原創(chuàng)文章分類匯總及配套源碼,涉及等本篇概覽本篇概覽作為實(shí)戰(zhàn)系列的第九篇,咱們聊聊如何用修改原始請(qǐng)求和響應(yīng)內(nèi)容,以及修改過程中遇到的問題首先是修改請(qǐng)求,如下圖,瀏覽器是請(qǐng)求發(fā)起方,真實(shí)參數(shù)只有,經(jīng)過網(wǎng)關(guān)時(shí)被塞歡迎訪問我的GitHubhttps://github.com/zq2599/blog_demos內(nèi)容:所有原創(chuàng)文章分類匯總及配套源碼,涉及Java、Dock...

    ivyzhang 評(píng)論0 收藏0
  • SpringMVC入門筆記

    摘要:簡(jiǎn)介注解用于修飾的方法,根據(jù)的的內(nèi)容,通過適當(dāng)?shù)霓D(zhuǎn)換為客戶端需要格式的數(shù)據(jù)并且寫入到的數(shù)據(jù)區(qū),從而不通過視圖解析器直接將數(shù)據(jù)響應(yīng)給客戶端。并且這些解析器都實(shí)現(xiàn)了接口,在接口中有四個(gè)最為主要的接口方法。 SpringMVC 細(xì)節(jié)方面的東西很多,所以在這里做一篇簡(jiǎn)單的 SpringMVC 的筆記記錄,方便以后查看。 Spring MVC是當(dāng)前最優(yōu)秀的MVC框架,自從Spring 2.5版本...

    gekylin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<