中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Map集合怎么在Java中使用

發布時間:2021-01-18 16:33:21 來源:億速云 閱讀:191 作者:Leah 欄目:編程語言

Map集合怎么在Java中使用?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

Map接口簡介

Map接口是一種雙列集合,它的每個元素都包含一個鍵對象Key和值對象Value,鍵和值對象之間存在一種對應關系,稱為映射。從Map集合中訪問元素時,只要指定了Key,就能找到對應的Value,

Map中的鍵必須是唯一的,不能重復,如果存儲了相同的鍵,后存儲的值會覆蓋原有的值,簡而言之就是鍵相同,值覆蓋。

Map常用方法

put(K key, V value) 添加數據,如果先前包含該鍵的映射,則替換舊值
  get(Object key)  返回指定鍵所映射的值
  Set<Map.Entry<K,V>> entrySet() 返回地址中包含的映射的Set集合
  Set<K> keySet() 返回集合中包含的鍵的Set集合
  Collection<V> values() 返回集合中包含的值的Collection集合
  remove(Object key) 從該集合中刪除指定鍵的映射

HashMap集合

HashMap集合是Map接口的一個是實現類,它用于存儲鍵值映射關系,但必須保證不出現重復的鍵。接下來通過一個案例來學習HashMap的用法

public class Example01 {
  public static void main(String[] args) {
      Map map = new HashMap();
      map.put("1", "老大");
      map.put("2", "老二");
      map.put("3", "老三");
      System.out.println("1"+" : "+map.get("1"));    //根據鍵獲取值
      System.out.println("2"+" : "+map.get("2"));
      System.out.println("3"+" : "+map.get("3"));
  }
}

在Map中還提供了一個values()方法,通過這個方法可以直接獲取Map中存儲所有值的Collection集合。接下來通過一個案例來演示values()方法的使用

public class Example04 {
  public static void main(String[] args) {
    Map map = new HashMap();
    map.put("1", "老大");
    map.put("2", "老二");
    map.put("3", "老三");
    Collection values = map.values();
    Iterator it = values.iterator();
    while(it.hasNext()) {
      Object value = it.next();
      System.out.println(value);
    }
  }
}

在程序開發中,經常需要取出Map中所有的鍵和值,那么如何遍歷Map中所有的鍵和值呢?

第一種方法是先遍歷Map集合中所有的鍵,再根據鍵獲取相同的值

public class Example02 {
  public static void main(String[] args) {
    Map map = new HashMap();
    map.put("1", "老大");
    map.put("2", "老二");
    map.put("3", "老三");
    Set keySet = map.keySet();      //獲取鍵的集合
    Iterator it = keySet.iterator();      //迭代鍵的集合
    while(it.hasNext()) {
      Object key = it.next();
      Object value = map.get(key);    //獲取每個鍵所對應的值
      System.out.println(key+" : "+value);
    }
  }
}

第二種方法是先獲取集合中的所有的映射關系,然后從映射關系中取出鍵和值。

public class Example03 {
  public static void main(String[] args) {
    Map map = new HashMap();
    map.put("1", "老大");
    map.put("2", "老二");
    map.put("3", "老三");
    Set set = map.entrySet();
    Iterator it = set.iterator();        //獲取迭代器對象
    while(it.hasNext()) {
      Map.Entry entry = (Map.Entry) it.next();        //獲取集合中鍵值對映射
      Object key = entry.getKey();      //獲取Entry中的鍵
      Object value = entry.getValue();      //獲取Entry中的值
      System.out.println(key+" : "+value);
    }
  }
}

HashMap集合迭代出來元素的順序和存入的順序是不一致的。如果想讓這兩個順序一致,可以使用Java中提供的LinkedHashMap類,它是HashMap的子類,與LinkedList一樣,它也使用雙向鏈表來維護內部元素的關系,使Map元素迭代的順序與存入的順序一致。

通過一個案例來學習LinkedHashMap的用法

public class Example05 {
  public static void main(String[] args) {
    Map map = new LinkedHashMap();      //創建Map集合
    map.put("1", "老大");      //存儲鍵和值
    map.put("2", "老二");
    map.put("3", "老三");
    Set keySet = map.keySet();
    Iterator it = keySet.iterator();
    while(it.hasNext()) {
      Object key = it.next();
      Object value = map.get(key);      //獲取每個鍵所對應的值
      System.out.println(key+" : "+value);
    }
  }
}

Properties集合

Map接口中還有一個實現類Hashtable,它和HashMap十份相似,區別在于Hashtable是線程安全的。Hashtable存取于元素時速度很慢,目前基本上被HashMap類所取代,但Hashtable類有一個子類Properties,在實際應用中非常重要

Properties只要用于存儲字符串類型的鍵和值,在實際開發中,經常使用Properties集合來存取應用的配置項。假設有一個文本編輯工具,要求默認背景是紅色,字體大小為14px,語言為中文,其位置如下

  Backgroup-color = red
  Font-size = 14px
  Language = chinese

在程序中可以使用Properties集合對這些配置進行存取,接下來通過一個案例來學習Properties集合的使用

public class Example06 {
  public static void main(String[] args) {
    Properties p = new Properties();    //創建Properties對象
    p.setProperty("Backgroup-color", "red");
    p.setProperty("Font-size ", "14px");
    p.setProperty("Language", "chinese");
    Enumeration names = p.propertyNames();
    while(names.hasMoreElements()) {    //循環遍歷所有的鍵
      String key =(String) names.nextElement();
      String value = p.getProperty(key);    //或獲取鍵對應的值
      System.out.println(key+" = "+value);
    }
  }
}

看完上述內容,你們掌握Map集合怎么在Java中使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

贵南县| 巴南区| 昭通市| 十堰市| 盐亭县| 五指山市| 洛川县| 盘锦市| 瓦房店市| 福州市| 无为县| 英吉沙县| 四川省| 高淳县| 平定县| 尼勒克县| 西华县| 瑞丽市| 青阳县| 什邡市| 依安县| 荆门市| 湟中县| 大同市| 沛县| 荥阳市| 山阳县| 武强县| 泗洪县| 菏泽市| 临沭县| 宁国市| 东安县| 资中县| 荆州市| 鄂州市| 土默特右旗| 兴隆县| 霍城县| 隆昌县| 通化县|