今回はHashtableに関するデータの扱い方について学びます。
Hashtableはデータをまとめるために使うという点ではArrayListにすごく似ているのですが、使い方が異なります。
ArrayListにデータを追加するときには
ArrayList.Addを使い、
Hashtableにデータを追加するときには
Hashtable.Addを使います。
ですが、
Hashtable.Addには
ArrayList.AddにはなかったKeyというプロパティがあり
必ず指定しなければなりません。
ArrayListでは追加した順に0,1,2とデータに対して順番がつけられ、取得する際にはその番号で
ArrayList.Atを
使えばデータが取れました。
Hashtableではこの順番というキーに相当するものをいかなるデータでも行えるようにしたテーブルになります。
百聞は一見に如かずなので、サンプルをご覧ください。(AddGet.fsml)
まず、
Hashtable.ValueでHashtable型の入れ物を作ります。
次に、
Hashtable.Addでデータを追加します。
今回追加するデータは、Int32型で10という値のKeyとInt32型で11という値のValueと
String型でhogeという値のKeyとString型でhugaという値のValueです。
それぞれ追加が終わると、
Hashtable.GetValueでデータを取得します。
その際のKeyは追加するときに使用したKeyを使用します。
それぞれで取得したValueを
String.Formatを使い、
Key => Value
の形でペアを出力します。
使い方自体は簡単ですね。
ArrayListと異なる点は、順番を意識しなくていいというところに尽きます。
ところで、このサンプルだと
Scope.GetValueとか
Scope.SetValueでもいいんじゃない?
と思う方もいるかもしれません。実際このサンプルではそれらを使うことでも動作します。
Hashtableは、似たような構造を持つデータをまとめる構造を定義するときに使います。
そしてそのHashtableをArrayListでまとめると、
Repeat.Foreachを使ってあるデータ構造に対する反復処理が
簡単に書けるということになります。
これは、
Scope.GetValueや
Scope.SetValueで行うことはできません。
今回のまとめですが
・
Hashtable.ValueでHashtableのデータを作成
・
Hashtable.AddでHashtableにKeyとValueのペアを追加
・
Hashtable.GetValueでKeyを指定してValueを取得
となっています。
今回の講座に関する質問はこのスレッドで受け付けています。
次回はBooleanについて行う予定です。