« C#のハッシュテーブル Dictionary | トップページ | トップページにTooltip (jQueryを使ったオリジナル) »

2008年12月15日 (月)

JAVAのハッシュテーブル HashMap

stdext::hash_map [VC++2003]
System.Collections.Generic.Dictionary(K,V) [C#2008 Express Edition]
java.util.HashMap<K,V> [J2SE 1.6.0_03]

以上のコレクション(コンテナ)の使い方比較。(自分の知識を整理するためのメモです。)

ここではJAVAのハッシュテーブル HashMapの使い方をかんたんにまとめた。


キー・値ともにオブジェクト型の場合
キーとなるオブジェクトのクラスをKで表記
値となるオブジェクトのクラスをVで表記

[importパッケージ]
import java.util.HashMap;

[キーオブジェクトのクラスの定義]
2つのメソッドequalsとhashCodeを実装する。
実装しなくてもコンパイルは通るがHashMapは動作しない。

class K {
  ...........
 
  public boolean equals(Object obj){
   K other = (K)obj;
   return ....;
  }
 
  public int hashCode(){
   return ....;
  }
}

[HashMapオブジェクトの宣言]
HashMap<K, V>  kvh = new HashMap<K, V>();

[キー対値の登録]
kvh.put(new K(....), new V(....));

[検索]
K k = new K(....); // 検索キー
V v = kvh.get(k);
if (v != null){  // 見つかった
  v.Vのメンバー
} else { // 見つからない


キーが値型(int)、値がオブジェクト型の場合

キーとして java.lang.Integerクラスを使うか、独自にintをラップするクラス
を定義する。前者の場合、equals()とhashCode()メソッドは定義済み。

« C#のハッシュテーブル Dictionary | トップページ | トップページにTooltip (jQueryを使ったオリジナル) »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: JAVAのハッシュテーブル HashMap:

« C#のハッシュテーブル Dictionary | トップページ | トップページにTooltip (jQueryを使ったオリジナル) »