Map定義:
在使用map時,需要先聲明,否則結(jié)果可能與預期不同,array可以不聲明
方式1:
declare -A myMap myMap["my03"]="03"
方式2:
declare -A myMap=(["my01"]="01" ["my02"]="02") myMap["my03"]="03" myMap["my04"]="04"
Map初始化:
與array類似,可以使用括號直接初始化,也可以通過添加的方式來初始化數(shù)據(jù),與array不同的是,括號直接初始化時使用的為一個鍵值對,添加元素時,下標可以不是整數(shù)
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)遍歷,根據(jù)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 "五、遍歷,根據(jù)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 五、遍歷,根據(jù)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的使用》
基礎(chǔ)才是編程人員應該深入研究的問題,比如:
1)List/Set/Map內(nèi)部組成原理|區(qū)別
2)mysql索引存儲結(jié)構(gòu)&如何調(diào)優(yōu)/b-tree特點、計算復雜度及影響復雜度的因素。。。
3)JVM運行組成與原理及調(diào)優(yōu)
4)Java類加載器運行原理
5)Java中GC過程原理|使用的回收算法原理
6)Redis中hash一致性實現(xiàn)及與hash其他區(qū)別
7)Java多線程、線程池開發(fā)、管理Lock與Synchroined區(qū)別
8)Spring IOC/AOP 原理;加載過程的。。。
【+加關(guān)注】。
本文摘自 :https://blog.51cto.com/u