■連想配列とは
連想配列とはキーと値(要素)の組み合わせを保持したデータ構造である。
※ハッシュ、マップ、辞書型など呼ばれる場合もある。
★連想配列のイメージ
キー:都道府県
要素:県庁所在地
参考:配列については以下を参照ください。
■連想配列の変数宣言とデータのセット
連想配列を使用する場合は必ず変数宣言を行う必要がある。
▼サンプルコード
#!/bin/bash
# 連想配列の変数宣言
declare -A prefectures
# 連想配列にキーと要素を格納
prefectures=([No1]=Hokkaido [No2]=Okinawa [No3]=Tokyo)
echo "#########キーと要素を格納#########"
# No1を表示
echo ${prefectures[No1]}
# 要素数を表示
echo ${#prefectures[@]}
# 全てのキーを表示
echo "${!prefectures[@]}"
# 全ての要素を表示
echo "${prefectures[@]}"
▼実行結果
#########キーと要素を格納#########
Hokkaido
3
No3 No2 No1
Tokyo Okinawa Hokkaido
★連想配列は、全てのキーと値(要素)を表示した場合、配列のインデックスの「何番目」という考え方ではなく、キーと値(要素)の関係で維持されているため、格納した順番は維持されない。
▼イメージ図
■要素の追加
要素の追加は以下の通り、連想配列名[キー項目名]=値(要素)で追加することができる。
▼サンプルコード
#!/bin/bash
# 連想配列の変数宣言
declare -A prefectures
# 連想配列にキーと要素を格納
prefectures=([No1]=Hokkaido [No2]=Okinawa [No3]=Tokyo)
echo "#########要素を追加#########"
# 要素を追加
prefectures[No4]=Osaka
# No4を表示
echo ${prefectures[No4]}
# 全てのキーを表示
echo "${!prefectures[@]}"
# 全ての要素を表示
echo "${prefectures[@]}"
▼実行結果
#########要素を追加#########
Osaka
No4 No3 No2 No1
Osaka Tokyo Okinawa Hokkaido
▼イメージ図
■要素の置換
すでに設定されている要素の置換を行う場合は、連想配列名[設定済のキー項目名]=値(要素)で置換する。
▼サンプルコード
#!/bin/bash
# 連想配列の変数宣言
declare -A prefectures
# 連想配列にキーと要素を格納
prefectures=([No1]=Hokkaido [No2]=Okinawa [No3]=Tokyo)
echo "#########要素を置換#########"
# 要素を置換
prefectures[No2]=Kyoto
# 全てのキーを表示
echo "${!prefectures[@]}"
# 全ての要素を表示
echo "${prefectures[@]}"
▼実行結果
#########要素を置換#########
No3 No2 No1
Tokyo Kyoto Hokkaido
▼イメージ図
■要素の削除
すでに設定されている要素の削除を行う場合は、unset 連想配列名[設定済のキー項目名]で削除する。
▼サンプルコード
#!/bin/bash
# 連想配列の変数宣言
declare -A prefectures
# 連想配列にキーと要素を格納
prefectures=([No1]=Hokkaido [No2]=Okinawa [No3]=Tokyo)
echo "#########要素を削除#########"
# 要素を削除
unset prefectures[No2]
# 全てのキーを表示
echo "${!prefectures[@]}"
# 全ての要素を表示
echo "${prefectures[@]}"
▼実行結果
#########要素を削除#########
No3 No1
Tokyo Hokkaido
▼イメージ図
コメント
[…] ソースからの抜粋: … […]