2016年7月16日土曜日

主キーが二つのMapクラスの作り方(Java)

Javaに既存で存在するMapクラスは任意のキーワードに対し、
一意の値を返してくれる非常に便利なクラスだ
しかし、ちょっと応用させて、複数キーで管理したいとき、それ用のAPIは提供されていない
なので主キーが2つのときの実装方法を考えてみた


 実装
できるだけ、そのままのマップクラスを使うべきなので、HashMapを継承する
継承元の型パラメータをHashMa < String, V > にしておき、
子クラスのput()、get()のオーバーロードで主キーを二つ受け、それをStringで繋げた物を主キーとしてpuser.putする方法
型パラメータで、主キー1,2、Valueの型をすべて決めてインスタンスを生成させる
これにより汎用性を高めてみた

 実際に使ってみた
主キーを2つ使うことを利用して、テーブルの縦軸、横軸をキーに値を出力するテーブルを作る
このテーブルを参照して出力を行っていく処理
表1. 年次別電気代、ガソリン料金の推移
電気料金[円] ガソリン価格[円]
200217.23105.0
200317.23107.0
200416.36113.0
200516.16125.0
200615.92135.0
200716.05139.0
200816.65155.0
200917.87120.0
201017.87132.0
201117.87144.0
201218.21146.0
このプログラムの出力結果から分かる通り、テーブル外の値を出力するとNullになる まぁハッシュマップの使用通りなので、良しとしよう

0 件のコメント:

コメントを投稿