1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Map遍歷 key-value 的4種方法

        共 11304字,需瀏覽 23分鐘

         ·

        2022-07-17 12:44

        ????關(guān)注后回復(fù) “進(jìn)群” ,拉你進(jìn)程序員交流群????

        四種方法

        • 先用keySet()取出所有key值,再取出對(duì)應(yīng)value——增強(qiáng)for循環(huán)遍歷
        • 先用keySet()取出所有key值,再取出對(duì)應(yīng)value——使用迭代器遍歷
        • 通過entrySet來獲取key-value——增強(qiáng)for循環(huán)遍歷
        • 通過entrySet來獲取key-value——使用迭代器遍歷

        Map是java中的接口,Map.Entry是Map的一個(gè)內(nèi)部接口。Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的Set集合;entrySet()的返回值也是返回一個(gè)Set集合,此集合的類型為Map.Entry<K, V>。

        Map.Entry是Map聲明的一個(gè)內(nèi)部接口,此接口為泛型,定義為Entry<K,V>。它表示Map中的一個(gè)實(shí)體(一個(gè)key-value對(duì))。接口中有getKey(),getValue方法。

        1、構(gòu)造HashMap,給hashMap添加元素

        HashMap hashMap = new HashMap();
        hashMap.put("三國(guó)演義","羅貫中");
        hashMap.put("水滸傳","施耐庵");
        hashMap.put("西游記","吳承恩");
        hashMap.put("紅樓夢(mèng)","曹雪芹");

        2、 方法一:先用keySet()取出所有key值,再取出對(duì)應(yīng)value——使用迭代器遍歷

        2.1 代碼

        /*1、先用keySet()取出所有key值,再取出對(duì)應(yīng)value——增強(qiáng)for循環(huán)遍歷*/
        System.out.println("====1、先用keySet()取出所有key值,再取出對(duì)應(yīng)value——增強(qiáng)for循環(huán)遍歷====");
        Set keyset = hashMap.keySet();
        for(Object key:keyset){
            System.out.println(key+"-"+hashMap.get(key));
        }

        2.2 運(yùn)行結(jié)果

        3、 方法二:先取出所有的key,再通過key取出對(duì)應(yīng)的value——使用迭代器遍歷

        3.1 代碼

        /*2、先用keySet()取出所有key值,再取出對(duì)應(yīng)value——使用迭代器遍歷*/
        System.out.println("====2、先用keySet()取出所有key值,再取出對(duì)應(yīng)value——使用迭代器遍歷====");
        Iterator iterator = keyset.iterator();
        while(iterator.hasNext()){
            Object key = iterator.next();
            System.out.println(key+"-"+hashMap.get(key));
        }

        3.2 運(yùn)行結(jié)果

        4、 方法三:通過entrySet()獲得key-value值——增強(qiáng)for循環(huán)遍歷

        4.1 代碼

        /*3、通過entrySet()獲得key-value值——增強(qiáng)for循環(huán)遍歷*/
        System.out.println("====3、通過entrySet()獲得key-value值——增強(qiáng)for循環(huán)遍歷====");
        Set set = hashMap.entrySet();
        for(Object key:set){
            Map.Entry entry = (Map.Entry) key;
            System.out.println(entry.getKey()+"-"+entry.getValue());
        }

        4.2 運(yùn)行結(jié)果

        5、 方法四:通過entrySet()獲得key-value值——使用迭代器遍歷

        5.1 代碼

        /*4、通過entrySet()獲得key-value值——使用迭代器遍歷*/
        System.out.println("====4、通過entrySet()獲得key-value值——使用迭代器遍歷====");
        Set set1 = hashMap.entrySet();
        Iterator iterator1 = set1.iterator();
        while(iterator1.hasNext()){
            Object itset = iterator1.next();
            Map.Entry entry = (Map.Entry) itset;
            System.out.println(entry.getKey()+"-"+entry.getValue());
        }

        5.2 運(yùn)行結(jié)果

        6、完整代碼

        import java.util.HashMap;
        import java.util.Iterator;
        import java.util.Map;
        import java.util.Set;
        public class MapTraverse {
            public static void main(String[] args){
                HashMap hashMap = new HashMap();
                hashMap.put("三國(guó)演義","羅貫中");
                hashMap.put("水滸傳","施耐庵");
                hashMap.put("西游記","吳承恩");
                hashMap.put("紅樓夢(mèng)","曹雪芹");
                /*1、先用keySet()取出所有key值,再取出對(duì)應(yīng)value——增強(qiáng)for循環(huán)遍歷*/
                System.out.println("====1、先用keySet()取出所有key值,再取出對(duì)應(yīng)value——增強(qiáng)for循環(huán)遍歷====");
                Set keyset = hashMap.keySet();
                for(Object key:keyset){
                    System.out.println(key+"-"+hashMap.get(key));
                }
                /*2、先用keySet()取出所有key值,再取出對(duì)應(yīng)value——使用迭代器遍歷*/
                System.out.println("====2、先用keySet()取出所有key值,再取出對(duì)應(yīng)value——使用迭代器遍歷====");
                Iterator iterator = keyset.iterator();
                while(iterator.hasNext()){
                    Object key = iterator.next();
                    System.out.println(key+"-"+hashMap.get(key));
                }
                /*3、通過entrySet()獲得key-value值——增強(qiáng)for循環(huán)遍歷*/
                System.out.println("====3、通過entrySet()獲得key-value值——增強(qiáng)for循環(huán)遍歷====");
                Set set = hashMap.entrySet();
                for(Object key:set){
                    Map.Entry entry = (Map.Entry) key;
                    System.out.println(entry.getKey()+"-"+entry.getValue());
                }
                /*4、通過entrySet()獲得key-value值——使用迭代器遍歷*/
                System.out.println("====4、通過entrySet()獲得key-value值——使用迭代器遍歷====");
                Set set1 = hashMap.entrySet();
                Iterator iterator1 = set1.iterator();
                while(iterator1.hasNext()){
                    Object itset = iterator1.next();
                    Map.Entry entry = (Map.Entry) itset;
                    System.out.println(entry.getKey()+"-"+entry.getValue());
                }
            }
        }

        7、應(yīng)用舉例

        7.1 問題描述

        使用HashMap添加3個(gè)員工對(duì)象,要求

        • 鍵:員工id
        • 值:員工對(duì)象 并遍歷顯示工資>18000的員工(遍歷方式最少兩種)員工類:姓名、工資、員工id

        7.2 代碼

        import java.util.HashMap;
        import java.util.Iterator;
        import java.util.Map;
        import java.util.Set;

        /*使用HashMap添加3個(gè)員工對(duì)象,要求
        鍵:員工id
        值:員工對(duì)象
        并遍歷顯示工資>18000的員工(遍歷方式最少兩種)員工類:姓名、工資、員工id
        */

        public class MapExercise {
            public static void main(String[] args) {
                HashMap hashMap = new HashMap();
                hashMap.put(1new employee("Tom"20000.01));
                hashMap.put(2new employee("Jack"10000.02));
                hashMap.put(3new employee("Bob"30000.03));
                hashMap.put(4new employee("Marry"17000.04));
                /*1、通過keySet()獲取所有key值,再得到對(duì)應(yīng)的value值——增強(qiáng)for循環(huán)遍歷*/
                System.out.println("====1、通過keySet()獲取所有key值,再得到對(duì)應(yīng)的value值——增強(qiáng)for循環(huán)遍歷");
                Set keyset = hashMap.keySet();
                for (Object key : keyset) {
                    employee m = (employee) hashMap.get(key);
                    if (m.getSalary() > 18000) {
                        System.out.println(m);
                    }
                }
                /*2、通過entrySet()獲取key-value值——使用迭代器遍歷*/
                System.out.println("====2、通過entrySet()獲取key-value值——使用迭代器遍歷====");
                Set set = hashMap.entrySet();
                Iterator iterator = set.iterator();
                while (iterator.hasNext()) {
                    Object itset = iterator.next();
                    Map.Entry entry = (Map.Entry) itset;
                    employee m = (employee) entry.getValue();
                    if (m.getSalary() > 18000) {
                        System.out.println(m);
                    }
                }

            }
        }
        class employee{
            private String name;
            private Double salary;
            private int id;

            public employee(String name, Double salary, int id) {
                this.name = name;
                this.salary = salary;
                this.id = id;
            }

            public String getName() {
                return name;
            }

            public void setName(String name) {
                this.name = name;
            }

            public Double getSalary() {
                return salary;
            }

            public void setSalary(Double salary) {
                this.salary = salary;
            }

            public int getId() {
                return id;
            }

            public void setId(int id) {
                this.id = id;
            }

            @Override
            public String toString() {
                return "employee{" +
                        "name='" + name + '\'' +
                        ", salary=" + salary +
                        ", id=" + id +
                        '}';
            }
        }

        7.3 運(yùn)行結(jié)果

        以上是基礎(chǔ)的Map遍歷方法,Java8簡(jiǎn)化了很多操作,效率上基本無(wú)差

        來源:blog.csdn.net/qq_40839718/article/

        details/123622684

        -End-

        最近有一些小伙伴,讓我?guī)兔φ乙恍?nbsp;面試題 資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

        點(diǎn)擊??卡片,關(guān)注后回復(fù)【面試題】即可獲取

        在看點(diǎn)這里好文分享給更多人↓↓

        瀏覽 30
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            亚洲丰满熟妇AV在线 | 国产一级片在线 | 操韩国女人 | 做爱视频网站全过程免费观看 | 91私密视频 | 哦哦哦舒服在深点 | 射久久久久久 | 六月婷婷五月天 | 国产成人精品免费视频 | 黄色做爱免费网站号 |