最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的Map集合簡(jiǎn)單匯總解析

 更新時(shí)間:2019年10月14日 10:13:40   作者:tunan96  
這篇文章主要介紹了Java中的Map集合簡(jiǎn)單匯總解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

Map接口簡(jiǎn)介

Map接口是一種雙列集合,它的每個(gè)元素都包含一個(gè)鍵對(duì)象Key和值對(duì)象Value,鍵和值對(duì)象之間存在一種對(duì)應(yīng)關(guān)系,稱為映射。從Map集合中訪問(wèn)元素時(shí),只要指定了Key,就能找到對(duì)應(yīng)的Value,

Map中的鍵必須是唯一的,不能重復(fù),如果存儲(chǔ)了相同的鍵,后存儲(chǔ)的值會(huì)覆蓋原有的值,簡(jiǎn)而言之就是鍵相同,值覆蓋。

Map常用方法

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

HashMap集合

HashMap集合是Map接口的一個(gè)是實(shí)現(xiàn)類,它用于存儲(chǔ)鍵值映射關(guān)系,但必須保證不出現(xiàn)重復(fù)的鍵。接下來(lái)通過(guò)一個(gè)案例來(lái)學(xué)習(xí)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"));    //根據(jù)鍵獲取值
      System.out.println("2"+" : "+map.get("2"));
      System.out.println("3"+" : "+map.get("3"));
  }
}

在Map中還提供了一個(gè)values()方法,通過(guò)這個(gè)方法可以直接獲取Map中存儲(chǔ)所有值的Collection集合。接下來(lái)通過(guò)一個(gè)案例來(lái)演示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);
    }
  }
}

在程序開(kāi)發(fā)中,經(jīng)常需要取出Map中所有的鍵和值,那么如何遍歷Map中所有的鍵和值呢?

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

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);    //獲取每個(gè)鍵所對(duì)應(yīng)的值
      System.out.println(key+" : "+value);
    }
  }
}

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

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();        //獲取迭代器對(duì)象
    while(it.hasNext()) {
      Map.Entry entry = (Map.Entry) it.next();        //獲取集合中鍵值對(duì)映射
      Object key = entry.getKey();      //獲取Entry中的鍵
      Object value = entry.getValue();      //獲取Entry中的值
      System.out.println(key+" : "+value);
    }
  }
}

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

通過(guò)一個(gè)案例來(lái)學(xué)習(xí)LinkedHashMap的用法

public class Example05 {
  public static void main(String[] args) {
    Map map = new LinkedHashMap();      //創(chuàng)建Map集合
    map.put("1", "老大");      //存儲(chǔ)鍵和值
    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);      //獲取每個(gè)鍵所對(duì)應(yīng)的值
      System.out.println(key+" : "+value);
    }
  }
}

Properties集合

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

Properties只要用于存儲(chǔ)字符串類型的鍵和值,在實(shí)際開(kāi)發(fā)中,經(jīng)常使用Properties集合來(lái)存取應(yīng)用的配置項(xiàng)。假設(shè)有一個(gè)文本編輯工具,要求默認(rèn)背景是紅色,字體大小為14px,語(yǔ)言為中文,其位置如下

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

在程序中可以使用Properties集合對(duì)這些配置進(jìn)行存取,接下來(lái)通過(guò)一個(gè)案例來(lái)學(xué)習(xí)Properties集合的使用

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JAVA字符串占位符使用方法實(shí)例

    JAVA字符串占位符使用方法實(shí)例

    今天同事又問(wèn)起類似符串占位符使用的功能,所以下面這篇文章主要給大家介紹了關(guān)于JAVA字符串占位符使用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • Java多線程中的wait/notify通信模式實(shí)例詳解

    Java多線程中的wait/notify通信模式實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于Java多線程中wait/notify通信模式的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • java文件操作工具類

    java文件操作工具類

    這篇文章主要為大家介紹了一個(gè)非常詳細(xì)的java文件操作工具類,具有很強(qiáng)的實(shí)用性,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 通過(guò)實(shí)例解析Java分布式鎖三種實(shí)現(xiàn)方法

    通過(guò)實(shí)例解析Java分布式鎖三種實(shí)現(xiàn)方法

    這篇文章主要介紹了通過(guò)實(shí)例解析Java分布式鎖三種實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • springmvc級(jí)聯(lián)屬性處理無(wú)法轉(zhuǎn)換異常問(wèn)題解決

    springmvc級(jí)聯(lián)屬性處理無(wú)法轉(zhuǎn)換異常問(wèn)題解決

    這篇文章主要介紹了springmvc級(jí)聯(lián)屬性處理無(wú)法轉(zhuǎn)換異常問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • java 獲取當(dāng)前路徑下的所有xml文檔的方法

    java 獲取當(dāng)前路徑下的所有xml文檔的方法

    這篇文章主要介紹了java如何獲取當(dāng)前路徑下的所有xml文檔,需要的朋友可以參考下
    2014-05-05
  • Java 詳細(xì)講解線程安全與同步附實(shí)例與注釋

    Java 詳細(xì)講解線程安全與同步附實(shí)例與注釋

    線程安全是多線程編程時(shí)的計(jì)算機(jī)程序代碼中的一個(gè)概念。在擁有共享數(shù)據(jù)的多條線程并行執(zhí)行的程序中,線程安全的代碼會(huì)通過(guò)同步機(jī)制保證各個(gè)線程都可以正常且正確的執(zhí)行,不會(huì)出現(xiàn)數(shù)據(jù)污染等意外情況
    2022-04-04
  • spring cloud整合ribbon問(wèn)題及解決方案

    spring cloud整合ribbon問(wèn)題及解決方案

    很多小伙伴在整合ribbon都出了相同的問(wèn)題,今天特地為大家整理了該問(wèn)題的解決方案,文中有非常詳細(xì)的圖文解說(shuō),對(duì)出現(xiàn)同樣問(wèn)題的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • Springboot應(yīng)用gradle?Plugin示例詳解

    Springboot應(yīng)用gradle?Plugin示例詳解

    這篇文章主要介紹了Springboot應(yīng)用gradle?Plugin詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • java 之JNA中的Memory和Pointer的使用方法

    java 之JNA中的Memory和Pointer的使用方法

    這篇文章主要介紹了java 之JNA中的Memory和Pointer的使用方法,文章基于Java的相關(guān)自來(lái)哦展開(kāi)對(duì)Pointer和Memory的使用介紹,需要的小伙伴可以參考一下
    2022-04-04

最新評(píng)論

易门县| 民勤县| 泾阳县| 唐河县| 安吉县| 观塘区| 吉木乃县| 财经| 泌阳县| 成武县| 政和县| 龙陵县| 江西省| 双桥区| 茂名市| 新民市| 乌兰县| 贵德县| 会东县| 云和县| 通州市| 鄱阳县| 行唐县| 和田市| 逊克县| 壶关县| 涟源市| 万安县| 深水埗区| 海阳市| 苗栗县| 阳信县| 贡嘎县| 柳河县| 金湖县| 甘泉县| 南江县| 扶风县| 固原市| 华亭县| 岳普湖县|