• 當前位置:首頁 > IT技術 > 系統服務 > 正文

    Linux Shell:Map的用法
    2021-10-27 14:38:25

    Map定義:

    在使用map時,需要先聲明,否則結果可能與預期不同,array可以不聲明

    方式1:

    declare -A myMap
    myMap["my03"]="03"

    方式2:

    declare -A myMap=(["my01"]="01" ["my02"]="02")
    myMap["my03"]="03"
    myMap["my04"]="04"

    Map初始化:

    與array類似,可以使用括號直接初始化,也可以通過添加的方式來初始化數據,與array不同的是,括號直接初始化時使用的為一個鍵值對,添加元素時,下標可以不是整數

    myMap["my03"]="03"
    myMap["my04"]="04"

    輸出Map所有的key、value、長度:

    # 1)輸出所有的key
    #若未使用declare聲明map,則此處將輸出0,與預期輸出不符,此處輸出語句格式比arry多了一個!
    echo ${!myMap[@]}
    #2)輸出所有value
    #與array輸出格式相同
    echo ${myMap[@]}
    #3)輸出map長度
    #與array輸出格式相同
    echo ${#myMap[@]}

    Map遍歷:

    #1)遍歷,根據key找到對應的value
    for key in ${!myMap[*]};do
      echo $key
      echo ${myMap[$key]}
    done
    #2)遍歷所有的key
    for key in ${!myMap[@]};do
      echo $key
      echo ${myMap[$key]}
    done
    #3)遍歷所有的value
    for val in ${myMap[@]};do
      echo $val
    done

    Map測試:

    [root@cdh-143 shell-test]# more map-test.sh
    #!/bin/sh
    
    echo "一、定義Map:declare -A myMap=(["myMap00"]="00" ["myMap01"]="01")"
    declare -A myMap=(["my00"]="00" ["my01"]="01")
    myMap["my02"]="02"
    myMap["my03"]="03"
    
    echo "二、輸出所有的key:"
    echo ${!myMap[@]}
    
    echo "三、輸出所有value:"
    echo ${myMap[@]}
    
    echo "四、輸出map的長度:"
    echo ${#myMap[@]}
    
    echo "五、遍歷,根據key找到對應的value:"
    for key in ${!myMap[*]};do
      echo "key:"$key
      echo "value:"${myMap[$key]}
    done
    
    echo "六、遍歷所有的key:"
    for key in ${!myMap[@]};do
      echo "key:"$key
      echo "value:"${myMap[$key]}
    done
    
    echo "七、遍歷所有value:"
    for val in ${myMap[@]};do
      echo "value:"$val
    done

    輸出:

    [root@cdh-143 shell-test]# ./map-test.sh
    一、定義Map:declare -A myMap=(["myMap00"]="00" ["myMap01"]="01")
    二、輸出所有的key:
    my02 my03 my00 my01
    三、輸出所有value:
    02 03 00 01
    四、輸出map的長度:
    4
    五、遍歷,根據key找到對應的value:
    key:my02
    value:02
    key:my03
    value:03
    key:my00
    value:00
    key:my01
    value:01
    六、遍歷所有的key:
    key:my02
    value:02
    key:my03
    value:03
    key:my00
    value:00
    key:my01
    value:01
    七、遍歷所有value:
    value:02
    value:03
    value:00
    value:01
    [root@cdh-143 shell-test]#

    ?

    參考《Shell中map的使用

    基礎才是編程人員應該深入研究的問題,比如:
    1)List/Set/Map內部組成原理|區別
    2)mysql索引存儲結構&如何調優/b-tree特點、計算復雜度及影響復雜度的因素。。。
    3)JVM運行組成與原理及調優
    4)Java類加載器運行原理
    5)Java中GC過程原理|使用的回收算法原理
    6)Redis中hash一致性實現及與hash其他區別
    7)Java多線程、線程池開發、管理Lock與Synchroined區別
    8)Spring IOC/AOP 原理;加載過程的。。。
    +加關注】。

    本文摘自 :https://blog.51cto.com/u

    開通會員,享受整站包年服務
    国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码