<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種方法

          共 11304字,需瀏覽 23分鐘

           ·

          2022-07-17 12:44

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

          四種方法

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

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

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

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

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

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

          2.1 代碼

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

          2.2 運行結(jié)果

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

          3.1 代碼

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

          3.2 運行結(jié)果

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

          4.1 代碼

          /*3、通過entrySet()獲得key-value值——增強for循環(huán)遍歷*/
          System.out.println("====3、通過entrySet()獲得key-value值——增強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 運行結(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 運行結(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("三國演義","羅貫中");
                  hashMap.put("水滸傳","施耐庵");
                  hashMap.put("西游記","吳承恩");
                  hashMap.put("紅樓夢","曹雪芹");
                  /*1、先用keySet()取出所有key值,再取出對應(yīng)value——增強for循環(huán)遍歷*/
                  System.out.println("====1、先用keySet()取出所有key值,再取出對應(yīng)value——增強for循環(huán)遍歷====");
                  Set keyset = hashMap.keySet();
                  for(Object key:keyset){
                      System.out.println(key+"-"+hashMap.get(key));
                  }
                  /*2、先用keySet()取出所有key值,再取出對應(yīng)value——使用迭代器遍歷*/
                  System.out.println("====2、先用keySet()取出所有key值,再取出對應(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值——增強for循環(huán)遍歷*/
                  System.out.println("====3、通過entrySet()獲得key-value值——增強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個員工對象,要求

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

          7.2 代碼

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

          /*使用HashMap添加3個員工對象,要求
          鍵:員工id
          值:員工對象
          并遍歷顯示工資>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值,再得到對應(yīng)的value值——增強for循環(huán)遍歷*/
                  System.out.println("====1、通過keySet()獲取所有key值,再得到對應(yīng)的value值——增強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 運行結(jié)果

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

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

          details/123622684

          -End-

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

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

          在看點這里好文分享給更多人↓↓

          瀏覽 30
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  一级a免一级a做免费线看中文字幕 | 黄色免费观看视频 | 97人人操人人操 | 乱老熟女一区二区三区 | 国产精品国产亚洲精品看不 |