|
|||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
java.lang.Object | +--jp.ne.ytp.util.MultiKeyHash
複数階層のキーを持つことが可能なハッシュテーブルです。
インスタンスの値としてHashMap
インスタンスを入れ子で持つことで複数階層を実装しています。
キーの階層数はコンストラクタによって決定します。一度決めたキーの数は変更できません。
次のようなコードを書いた場合、
String[] s1 = {"aa", "bbb", "111"};
String[] s2 = {"aa", "ccc", "222"};
String[] s3 = {"aa", "bbb", "222"};
MultiHash hash = new MultiHash(3);
hash.put(s1, "1番");
hash.put(s2, "2番");
hash.put(s3, "3番");
System.out.println(hash.get(s2));
結果は「2番」と表示されます。
String[] key = {"aa", "bbb"};
System.out.println(hash.keySet(key));
System.out.println(hash.values(key));
[222, 111]
HashMap| コンストラクタの概要 | |
MultiKeyHash()
キーが1階層だけのインスタンスを生成します。 |
|
MultiKeyHash(int iLayer)
iLayerで指定された階層数をキーとして持つインスタンスを生成します。 |
|
| メソッドの概要 | |
Object |
get(Object[] keys)
データを検索します。 |
Set |
keySet(Object[] keys)
keysで指定されたキー配下(1階層下)のMapが保持するキーの一覧を返します。 |
void |
put(Object[] keys,
Object value)
keysをキーとして、valueを格納します。 |
Collection |
values(Object[] keys)
keysで指定されたキー配下(1階層下)のMapが保持する値の一覧を返します。 |
| クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
public MultiKeyHash()
public MultiKeyHash(int iLayer)
| メソッドの詳細 |
public void put(Object[] keys,
Object value)
keys - 格納対象データのキーを格納した配列value - 格納対象データ
IllegalArgumentException - 配列の要素数が階層数以外の場合。public Object get(Object[] keys)
keys - 検索対象のキーを格納した配列
public Set keySet(Object[] keys)
keys - 検索対象のキーを格納した配列
Map.keySet()public Collection values(Object[] keys)
keys - 検索対象のキーを格納した配列
Map.values()
|
|||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||