第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Java Map 通過 key 或者 value 過濾

標(biāo)簽:
Java

今天写根过滤的时候一下子有点愣眼,先是想到用 Java 原生的 map 循环查出来,但是觉得太 low, 后面思考了一下可以用 Java8 的 Lambda,写完了,又发现 Google Guava 有现成的方法,这里一一列出来,供参考使用。

首先提示,如果照搬我的代码的话别忘了引这些依赖

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.hamcrest</groupId>
                    <artifactId>hamcrest-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-library</artifactId>
            <version>1.3</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>25.1-jre</version>
        </dependency></dependencies>

filter by key

public class FilterMapByKeyTest {    private Map<Integer, String> 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<Integer, String> map = new HashMap<>();        for (Map.Entry<Integer, String> 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<Integer, String> 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<Integer, String> map = Maps.filterKeys(WEEK, r -> r <= 3);
        assertThat(map.keySet(), contains(1, 2, 3));
    }

}

filter by value

public class FilterMapByValueTest {    private Map<Integer, String> 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<Integer, String> map = new HashMap<>();        for (Map.Entry<Integer, String> 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<Integer, String> 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<Integer, String> map = Maps.filterValues(WEEK, r -> r.startsWith("S"));
        assertThat(map.values(), contains("Saturday","Sunday"));
    }
}

如果觉得内容还不错,可以关注一下我哦
期待与你相遇,一同成长前行!



作者:志哥
链接:https://www.jianshu.com/p/8734656e8d8e
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消