<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Map遍歷 key-value 的4種方法

          共 11396字,需瀏覽 23分鐘

           ·

          2022-07-30 15:57

          點(diǎn)擊關(guān)注公眾號(hào),實(shí)用技術(shù)文章及時(shí)了解

          四種方法

          • 先用keySet()取出所有key值,再取出對(duì)應(yīng)value——增強(qiáng)for循環(huán)遍歷
          • 先用keySet()取出所有key值,再取出對(duì)應(yīng)value——使用迭代器遍歷
          • 通過(guò)entrySet來(lái)獲取key-value——增強(qiáng)for循環(huán)遍歷
          • 通過(guò)entrySet來(lái)獲取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,再通過(guò)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、 方法三:通過(guò)entrySet()獲得key-value值——增強(qiáng)for循環(huán)遍歷

          4.1 代碼

          /*3、通過(guò)entrySet()獲得key-value值——增強(qiáng)for循環(huán)遍歷*/
          System.out.println("====3、通過(guò)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、 方法四:通過(guò)entrySet()獲得key-value值——使用迭代器遍歷

          5.1 代碼

          /*4、通過(guò)entrySet()獲得key-value值——使用迭代器遍歷*/
          System.out.println("====4、通過(guò)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、通過(guò)entrySet()獲得key-value值——增強(qiáng)for循環(huán)遍歷*/
                  System.out.println("====3、通過(guò)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、通過(guò)entrySet()獲得key-value值——使用迭代器遍歷*/
                  System.out.println("====4、通過(guò)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 問(wèn)題描述

          使用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、通過(guò)keySet()獲取所有key值,再得到對(duì)應(yīng)的value值——增強(qiáng)for循環(huán)遍歷*/
                  System.out.println("====1、通過(guò)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、通過(guò)entrySet()獲取key-value值——使用迭代器遍歷*/
                  System.out.println("====2、通過(guò)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ú)差,關(guān)于Java8新方法遍歷Map,可以參考:

          來(lái)源:blog.csdn.net/qq_40839718/article/

          details/123622684

          程序汪資料鏈接

          程序汪接的7個(gè)私活都在這里,經(jīng)驗(yàn)整理

          Java項(xiàng)目分享  最新整理全集,找項(xiàng)目不累啦 07版

          堪稱神級(jí)的Spring Boot手冊(cè),從基礎(chǔ)入門到實(shí)戰(zhàn)進(jìn)階

          臥槽!字節(jié)跳動(dòng)《算法中文手冊(cè)》火了,完整版 PDF 開放下載!

          臥槽!阿里大佬總結(jié)的《圖解Java》火了,完整版PDF開放下載!

          字節(jié)跳動(dòng)總結(jié)的設(shè)計(jì)模式 PDF 火了,完整版開放下載!


          歡迎添加程序汪個(gè)人微信 itwang009  進(jìn)粉絲群或圍觀朋友圈

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

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美色图15 | 操B视频网站 | 色婷婷在线视频精品导航 | 免费一级特黄特色黄录像 | 中文无码高清视频 |