- ベストアンサー
相互的な検索のできるハッシュテーブル?
こんにちは。データ構造とアルゴリズムを学習しているJava入門者です。 「名前」と「電話番号」の二つのデータを格納するハッシュテーブルを実装したプログラムを考えています。名前をキーにして電話番号を呼び出すところまではいったのですが、 それと同時に電話番号と名前のどちらを入力しても、もう片方が検索できるようなプログラムを作れ、というのが今回の課題なのです。 基本的なハッシュテーブルの構造は学んでいるのですが、 どうしても「名前と番号、どちらのデータからも同じデータに辿り着く」ようなハッシュ関数が頭に浮かびません。 検索して色々調べてみたのですが、それらしい記事を見つけることが出来ませんでしたので、ここに投稿させていただきました。 どうぞよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
お礼
素早い回答ありがとうございます! rancoさんのコードは、つまりハッシュテーブルを2つ作っておいて、 nameをキーに使う値と、phoneをキーに使う値をそれぞれ同時に格納するということですね。 ハッシュテーブル自体を2つ使う・・・1つのハッシュテーブルをいかにしてキーと値両方からアクセスできるか、そればかり考えていた私には思い付きませんでした。。やってみます!
補足
大切なことを書いておくのを忘れてました。 課題の制約として、HashTable、HashMapなどのハッシュ関係のクラスは使わずに、自分で実装しなければいけないのでした。すみません。