<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 一、Map 集合 不屬于Collection集合的子集合 Map<key ,value> ## 二、Map集合的特點: 1. 可以有null,只能有一個 2. 以鍵值對的形式,存儲元素 3. Map集合中的元素, key是不允許重復的,value是可以重復的 4. Map集合中的元素, key和value是一一對應 ## 三、Map的實現類: #### HashMap 底層是用`哈希表`實現的,查詢的速度特別的快 `HashMap`集合是一個無序的集合,存儲元素和取出元素的順序有可能不一致 #### TreeMap 底層是用`二叉樹`實現的 ### `HashMap` 類與 `Hashtable` 的區別? > `HashMap` :線程不同步,不允許null鍵和null值 > > `Hashtable`: 線程同步,允許null鍵和null值 > Map集合沒有迭代器,要想遍歷集合中的內容,必須把其轉為set集合進行 ## 四、Map集合常用的方法: | put(); | | | :---------: | :--------------------------------------------- | | get(); | key存在,返回對應的value值;key不存在,返回null | | remove(); | key存在,v返回被刪除的值;key不存在,v返回null | | entrySet(); | 返回map集合的鍵值對set集合,常用 | | keySet(); | 返回ma集合中所有key的set集合,不常用 | | values(); | 返回map集合中所有value的collection集合,不常用 | ## 五、Map 的練習: ```java public class MapDemo { /** * put */ @Test public void test1() { Map<String, Integer> a = new HashMap<>(); a.put("語文", 99); a.put("數學", 94); a.put("物理", 96); a.put("英文", 15); System.out.println(a); } /** * get(); 根據key值獲取value值 */ @Test public void test2() { Map<String, Integer> a = new HashMap<>(); a.put("語文", 99); a.put("數學", 94); a.put("物理", 96); a.put("英文", 15); System.out.println(a); System.out.println(a.get("數學")); } /** * remove */ @Test public void test3() { Map<String, Integer> a = new HashMap<>(); a.put("語文", 99); a.put("數學", 94); a.put("物理", 96); a.put("英文", 15); System.out.println(a.remove("數學")); System.out.println(a); } /** * Map集合的三種collection視圖 */ @Test public void test4() { Map<String, Integer> a = new HashMap<>(); a.put("語文", 99); a.put("數學", 94); a.put("物理", 96); a.put("英文", 15); System.out.println(a); // key - value視圖 Set<Map.Entry<String,Integer>> s=a.entrySet(); System.out.println(s); // key 視圖 Set keys= a.keySet(); System.out.println(keys); // value 視圖 Collection c=a.values(); System.out.println(c); } } ``` ## 六、Map 集合遍歷鍵找值方法: ### 1、鍵找值方式: **即通過元素中的鍵,獲取鍵所對應的值** ```Set<K> keySet() 返回此映射中包含的鍵的 Set 視圖。``` ### 實現步驟: 1. 使用Map集合中的方法keySet(),把Map集合所有的key取出來,存儲到一個Set集合中 1. 遍歷set集合,獲取Map集合中的每一個key 2. 通過Map集合中的方法get(key),通過key找到value ```java public static void main(String[] args) { //創建Map集合對象 Map<String,Integer> map = new HashMap<>(); map.put("趙麗穎",168); map.put("楊穎",165); map.put("林志玲",178); //1.使用Map集合中的方法keySet(),把Map集合所有的key取出來,存儲到一個Set集合中 Set<String> set = map.keySet(); //2.遍歷set集合,獲取Map集合中的每一個key //使用迭代器遍歷Set集合 Iterator<String> it = set.iterator(); while (it.hasNext()){ String key = it.next(); //3.通過Map集合中的方法get(key),通過key找到value Integer value = map.get(key); System.out.println(key+"="+value); } System.out.println("-------------------"); //使用增強for遍歷Set集合 for(String key : set){ //3.通過Map集合中的方法get(key),通過key找到value Integer value = map.get(key); System.out.println(key+"="+value); } System.out.println("-------------------"); //使用增強for遍歷Set集合 for(String key : map.keySet()){ //3.通過Map集合中的方法get(key),通過key找到value Integer value = map.get(key); System.out.println(key+"="+value); } } ``` ------------ ### 2、使用Entry對象遍歷: ```Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射關系的 Set 視圖。``` ### 實現步驟: 1. 使用Map集合中的方法entrySet(),把Map集合中多個Entry對象取出來,存儲到一個Set集合中 2. 遍歷Set集合,獲取每一個Entry對象 3. 使用Entry對象中的方法getKey()和getValue()獲取鍵與值 ```java public static void main(String[] args) { //創建Map集合對象 Map<String,Integer> map = new HashMap<>(); map.put("趙麗穎",168); map.put("楊穎",165); map.put("林志玲",178); //1.使用Map集合中的方法entrySet(),把Map集合中多個Entry對象取出來,存儲到一個Set集合中 Set<Map.Entry<String, Integer>> set = map.entrySet(); //2.遍歷Set集合,獲取每一個Entry對象 //使用迭代器遍歷Set集合 Iterator<Map.Entry<String, Integer>> it = set.iterator(); while(it.hasNext()){ Map.Entry<String, Integer> entry = it.next(); //3.使用Entry對象中的方法getKey()和getValue()獲取鍵與值 String key = entry.getKey(); Integer value = entry.getValue(); System.out.println(key+"="+value); } System.out.println("-----------------------"); for(Map.Entry<String,Integer> entry:set){ //3.使用Entry對象中的方法getKey()和getValue()獲取鍵與值 String key = entry.getKey(); Integer value = entry.getValue(); System.out.println(key+"="+value); } } ``` ## List集合、Set集合、Map集合之間的區別? 1. ```List``` 和 ```Set``` 是存儲單列數據的集合,```Map``` 是存儲鍵值對這樣的雙列數據的集合; 2. ? 1) ```List``` 中存儲的數據是有順序的,并且值允許重復; ? 2) ```Map``` 中存儲的數據是無序的,它的鍵是不允許重復的,但是值是允許重復的; ? 3) ```Set```中存儲的數據是無順序的,并且不允許重復,但元素在集合中的位置是由元素的```hashcode```決定,即位置是固定的 ? (Set集合是根據hashcode來進行數據存儲的,所以位置是固定的,但是這個位置不是用戶可以控制的,所以對于用戶來說set中的元素還是無序的)。 ``` 1. List 集合中對象按照索引位置排序,可以有重復對象,允許按照對象在集合中的索引位置檢索對象,例如通過list.get(i)方法來獲取集合中的元素; 2. Map 中的每一個元素包含一個鍵和一個值,成對出現,鍵對象不可以重復,值對象可以重復; 3. Set 集合中的對象不按照特定的方式排序,并且沒有重復對象,但它的實現類能對集合中的對象按照特定的方式排序,例如 Tree Set 類,可以按照默認順序,也可以通過實現 Java.util.Comparator< Type >接口來自定義排序方式。 ``` ![1545816646365](C:\Users\yflad-F\Desktop\JAVA筆記\assets\1545816646365.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看