溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JavaMap的keySet與entrySet遍歷方式怎么使用

發(fā)布時(shí)間:2023-03-15 14:36:36 來源:億速云 閱讀:147 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“JavaMap的keySet與entrySet遍歷方式怎么使用”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

1.使用keySet進(jìn)行遍歷

實(shí)現(xiàn)步驟:

(1)使用Map集合中的方法keySet(),把Map集合所有的key取出來,存儲(chǔ)到一個(gè)Set集合中

(2)遍歷set集合,獲得Map集合中的每一個(gè)key

(3)通過Map集合中的方法get(key),通過key找到value

	@Test
    public void testKeySet() {
        Map<String, Integer> map = new ConcurrentHashMap<>(16);
        map.put("one",1);
        map.put("two",2);
        map.put("three",3);
        // 1.增強(qiáng)for循環(huán)遍歷map中的key
        for (String key : map.keySet()) {
            // 通過key找到對(duì)應(yīng)的value
            Integer value = map.get(key);
            System.out.println(key + "->" +value);
        }
        System.out.println("------------------------");
        // 2.使用迭代器來進(jìn)行遍歷(map集合中所有的key取出來,存儲(chǔ)到Set集合中)
        Iterator<String> iteratorKey = map.keySet().iterator();
        while (iteratorKey.hasNext()){
            String key = iteratorKey.next();
            Integer value = map.get(key);
            System.out.println(key + "->" +value);
        }
    }

2.使用entrySet進(jìn)行遍歷

實(shí)現(xiàn)步驟:

(1)Map.entrySet()把map的鍵值映射成Set集合

(2)Map.entrySet迭代器會(huì)生成EntryIterator,其返回的實(shí)例是一個(gè)包含key/value鍵值對(duì)的對(duì)象

(3)getKey(): 返回鍵值對(duì)的key

(4)getValue(): 返回鍵值對(duì)的value

    @Test
    public void testEntrySet() {
        Map<String, Integer> map = new ConcurrentHashMap<>(16);
        map.put("one",1);
        map.put("two",2);
        map.put("three",3);
        // Map.entrySet迭代器會(huì)生成EntryIterator,其返回的實(shí)例是一個(gè)包含key/value鍵值對(duì)的對(duì)象。
        // 而keySet中迭代器返回的只是key對(duì)象,還需要到map中二次取值。故entrySet要比keySet快一倍左右。
        Set<Map.Entry<String, Integer>> entries = map.entrySet();
        Iterator<Map.Entry<String, Integer>> entryIterator = entries.iterator();
        while (entryIterator.hasNext()){
            // 迭代出來的是每一個(gè)實(shí)例的對(duì)象,包含鍵值對(duì)
            Map.Entry<String, Integer> entry = entryIterator.next();
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key + "->" + value);
        }
    }

3.對(duì)比

(1)keySet獲取value只能通過先獲取key才能得到value

(2)entrySet在迭代之后可以直接從迭代出來的實(shí)例對(duì)象中直接獲取Key和Value

(3)兩個(gè)方法遍歷的結(jié)果都一樣,若對(duì)查詢速度有要求就選entrySet(),entrySet可以提高性能。

“JavaMap的keySet與entrySet遍歷方式怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI