イメージとしては、
キー:1
値:うま、ひつじ、ねこ
のように、一つのキーに対して、複数の値を持たせたいのですが…。
結論から言うとできません。
ただし、値に配列オブジェクトを使用することで擬似的に再現する、という事は可能です。
挙げられた例では、String型の配列オブジェクトをputしてやればOKですよ。
結論から言うとできません。
ただし、値に配列オブジェクトを使用することで擬似的に再現する、という事は可能です。
挙げられた例では、String型の配列オブジェクトをputしてやればOKですよ。
なるほど。。。
JavaのHashtableのことをいってるのなら、できません。
http://java.sun.com/javase/ja/6/docs/ja/api/java/util/Hashtable....
自前でクラスをつくって実装すればできます。
出来ないです。
どうしてもという事であれば、
"うま、ひつじ、ねこ" というように1つに合成した形で格納しておいて、
キーで抽出した後に”、”で分割するといったような面倒な事になります。
面倒だからという事で、下記のようにclassを作成して、利用しやすく、
するという手もありますが、必ずしも効率の良い対応とは言えないです。
http://www.atmarkit.co.jp/fjava/javatips/081java010.html
データ量が少ないのであれば、
ハッシュよりもアレイを使う事を考えてみてください。
データ量が多い場合は、バックエンドとしてデータベースを用いるほうが、
効率よく扱えるかもしれませんので、一考してみてください。
(高機能なPostgreSQLやMySQLなどよりも素朴で非常に高速なSQLiteなどは、
親和性も高く、情報収集も容易です。)
すでに回答が出ているようにHashtableのみではできません。
代わりにHashMapを使えば比較的簡単にできます。
http://www.atmarkit.co.jp/fjava/javatips/081java010.html
アレイ(Arrayクラスのこと?)やデータベースという的外れな回答が見受けられますが、惑わされないように。
ハッシュテーブル
Java では標準でもハッシュテーブルの実装はいくつかある。
特定のどれかを指しているのか違うのか区別がつかん。
言語仕様として存在する訳じゃないからやりようはいくらでもあるだろ。
class ArrayValueHashMap extends HashMap<Object,Array> { public void put(Object key, Object value) { if ( ! this.containsKey(key) ) { super.put(key,new Array()); } super.get(key).add(value); } public void get(Object key,int index) { if ( this.containsKey(key) ) { return this.get(key).get(index) } else { return null; } } }
こんなん?
実際はもうちょっと作り込まないとダメだけど。
なるほど。。。