タイトルを見てこう思った人がいるかもしれない。
はい! 地図の事です!
お前は俺か。
はい、という訳で今日はまずJavaのMapという物の概念から
考えていきましょー。まぁJavaに限らずほとんどの言語に
ある話なんで多分みなさん知ってると思うんですが。
さて、Mapというのはキーとそれに対応する値がセットになった
エントリの集合体のような物です。
はい、何を言っているか分かりませんね。
例えば、学校のクラスの出席番号を考えてみましょう。
No 名前
1 山田
2 畠中
3 川畑
4 立神
こんな出席番号のクラスがあったとしましょう。
さてここで質問です。出席番号2番の生徒の名前は?
答えは当然"畠中"君ですね。(畠中さん、かもしれないですが)
このように、キー値(出席番号)と、それに対応する値(名前)が
セットになったエントリ(No:名前)が複数ある物がMapです。
さて、ここでさっきのデータにエントリを増やしてみます。
No 名前
1 山田
2 畠中
3 川畑
4 立神
2 計羅
上記データはMapとして……いや、出席番号として正しく機能するでしょうか?
勿論、答えはNo!!! です。何故ならこのクラス、出席番号2番の人! と先生が
点呼をすると
畠中「はい!」
計羅「ういす!!」
二人返事しちゃいますね。これじゃ出席番号としては機能してません。
これと同じように、Mapにおいてはキー値は重複しないという約束が
あります。特に難しい事は無いですね。
じゃ、これを実際にJavaのコードにしてみたものを以下に。
Map
classMap.put(1, "山田");
classMap.put(2, "畠中");
classMap.put(3, "川畑");
classMap.put(4, "立神");
こんな感じでしょうか?(コンパイル通してないからあってるか不安……)
上記コードのclassMapというマップが上の方で作ったデータと
全く同じ事を示している状態になります。
ここでは例としてMapの実装クラスはHashMapを使いましたが、他の
物を使った時との違いを今度書きたいと思います。
Generative MV
-
ICCでやってた坂本龍一トリビュート展、お友達と見に行った時の感想の中で特に印象に残ってた〈Generative
MV〉について、今通ってる芸術大学のレポート題材にして書いたのでここにも載せときます。本来は映画等の映像作品を題材にする事が期待されてたので、インタラクティブなインスタレーション作品を対象として...
5 か月前
4 件のコメント:
これハッシュだね!!
そそ。ハッシュ。
ただ(非常に細かい話になるんだけど)正確には"ハッシュ"は間違い。
正解は"ハッシュテーブル"。
またはプログラムで使う場合は連想配列って
言えば間違いは無いかなー。
連想配列の内部実装にハッシュテーブルを
使っているのでハッシュとよく呼ばれるみたい。
……今度ハッシュ関数、ハッシュ値、ハッシュテーブルについてのエントリを
書いてもいいかもしんない……。
>ハッシュテーブル
細かくいくなら、確かに間違いだね。(そこまで細かくいくか!!(笑))
あ、あと、ブログからt.satoさんのブログにリンク貼っちゃったけど、大丈夫だったよね??
一応、確認のために、コメント入れました。
>ハッシュ
細かい話だけど、ここらへんの用語に関する
意識の整合性が取れてないとたまに変な
勘違いを起こす事があるからねー。
今もそういう所でしなくてもいい苦労を
してます……
>ブログ
ぜんぜんおっけーよー。
俺の恥ずかしい投稿が・・・
コメントを投稿