• <dd id="wpirm"><center id="wpirm"></center></dd>

      <button id="wpirm"><acronym id="wpirm"></acronym></button>
      <s id="wpirm"><acronym id="wpirm"></acronym></s>

      好程序員-千鋒教育旗下高端IT職業教育品牌

      400-811-9990
      我的賬戶
      好程序員

      專注高端IT職業培訓

      親愛的猿猿,歡迎!

      已有賬號,請

      如尚未注冊?

      [BigData] 好程序員大數據學習路線分享Map學習筆記

      [復制鏈接]
      277 0
      葉子老師 發表于 2019-9-28 13:56:26 | 只看該作者 |閱讀模式 打印 上一主題 下一主題
      ?        好程序員大數據培訓分享Map學習筆記,set底層是默認valuemap
      Map的常用方法
      //介紹Map接口的方法
                      Map<String, String> map = new HashMap<>();
                      //1.增加
                      //V put(K key,V value)  增加一個鍵值對
                      //關于返回值,如果當前的key之前沒有添加過,返回null.如果當前的key之前已經存在了,這里返回之前的值
                      //void putAll(Map<? extends K,? extends V> map)  增加多個
                      //2.刪除
                      //V remove(Object key)  根據key刪除元素
                      //返回值就是被刪掉的值
                      //void clear()  刪除全部  != null
                      //3.獲取
                      //V get(Object key)  根據key查找元素
                      //int size()  獲取鍵值對的個數
             
                      //Set<K> keySet()   遍歷方法一
                      //Set<Map.Entry<K,V>> entrySet() 遍歷方法二
                      //4.常用的判斷
                      //boolean isEmpty()  //map!=null
             
                      //boolean containsKey(K key) 是否包含當前的key
                      //boolean containsValue(V value) 是否包含當前的value
      ## 一、HashMap
      ?        底層是哈希表,線程不安全
      ?        **哈希表結構**
      ![yuanli](G:\bigdata\week2\7-31\資料\hash\Hash.assets\yuanli.png)
      ###         2.HashMapHashTable區別
      ?                        1.HashTable是線程安全的
      ?                        2.HashTablekey不能為空
      ## 二、TreeMap
      ?        底層是二叉樹,線程不安全
      /*
      * TreeMap的注意點:
      * 1.什么類型的數據類型可以作為key?
      * a:實現了Comparable接口的compareTo()方法   b:實現了Comparator接口的compare()方法
      * 可以的代表:String,包裝類,自定義的實現了要求的類
      * 不可以的代表:數組,ArrayList,LinkedList(如果給他們建立的比較器也可以比較,但是不建議使用)
      *
      * 2.元素可不可以作為key,跟元素內部的成員有沒有關系
      * 元素可不可以作為key,跟元素內部的成員有沒有關系
      */
      public class Demo5 {
              public static void main(String[] args) {
                      TreeMap<Dog, String> map = new TreeMap<>();
                      //如果沒有重寫compareTo或者compare方法,put內部無法調用元素的這兩個方法.所以會報錯
                      map.put(new Dog(), "haha");
              }
      }
      class Dog implements Comparable<Dog>{
              //2.元素可不可以作為key,跟元素內部的成員有沒有關系
              Object object;
              @Override
              public int compareTo(Dog o) {
                      // TODO Auto-generated method stub
                      return 0;
              }
             
      }
      ```
      # 可變參數
      ```
      public static void main(String[] args) {
                      sum(2, 3);//值傳遞
                      //址傳遞
                      int[] arr = {3,4,5};
                      sum(arr);
                      //可變參數
                     
                      //可變參數的特點
                      //1.給可變參數傳值的實參可以直接寫,個數不限制,內部會自動的將他們放入可變數組中.
                      sum1(5,6,7,8,9,3,3,4);
                      //2.當包括可變參數在內有多個參數時,可變參數必須放在最后面,并且一個方法中最多只能有一個可變參數
                      sum2(6,3);
                      //3.當可變參數的方法與固定參數的方法是重載關系時,調用的順序,固定參數的優先于可變參數的.
                      sum3(2,3);
              }
             
              //求兩個數的和
              //值傳遞
              public static int sum(int a,int b) {
                      return a+b;
              }
              //址傳遞
              public static int sum(int[] a) {
                      int sum = 0;
                      for (int i = 0; i < a.length; i++) {
                              sum+=a;
                      }
                      return sum;
              }
              //通過可變參數
              //構成:數據類型+...    實際上就是數據類型[]  :int[]
              public static int sum1(int... a) {
                      int sum = 0;
                      for (int i = 0; i < a.length; i++) {
                              sum+=a;
                      }
                      return sum;
              }
              //2.當包括可變參數在內有多個參數時,可變參數必須放在最后面,并且一個方法中最多只能有一個可變參數
              public static void sum2(float b,int... a) {
                      int sum = 0;
                      for (int i = 0; i < a.length; i++) {
                              sum+=a;
                      }
                      System.out.println(sum);
              }
              //3.當可變參數的方法與固定參數的方法是重載關系時,調用的順序,固定參數的優先于可變參數的.
              public static int sum3(int a, int b) {
                      System.out.println("a");
                      int sum = 0;
                      return sum;
              }
              public static int sum3(int... a) {
                      System.out.println("b");
                      int sum = 0;
                      return sum;
              }

      精彩內容,一鍵分享給更多人!
      收藏
      收藏0
      轉播
      轉播
      分享
      淘帖0
      支持
      支持0
      反對
      反對0
      回復

      使用道具 舉報

      您需要登錄后才可以回帖

      本版積分規則

      關注我們
      好程序員
      千鋒好程序員

      北京校區(總部):北京市海淀區寶盛北里西區28號中關村智誠科創大廈

      深圳西部硅谷校區:深圳市寶安區寶安大道5010號深圳西部硅谷B座A區605-619

      杭州龍馳智慧谷校區:浙江省杭州市下沙經濟技術開發區元成路199號龍馳智慧谷B座7層

      鄭州校區:鄭州市二七區航海中路60號海為科技園C區10層、12層

      Copyright 2007-2019 北京千鋒互聯科技有限公司 .All Right

      京ICP備12003911號-5 京公安網11010802011455號

      請您保持通訊暢通1對1咨詢馬上開啟

      Pictoa