一意の値を返してくれる非常に便利なクラスだ
しかし、ちょっと応用させて、複数キーで管理したいとき、それ用のAPIは提供されていない
なので主キーが2つのときの実装方法を考えてみた
実装
できるだけ、そのままのマップクラスを使うべきなので、HashMapを継承する継承元の型パラメータをHashMa < String, V > にしておき、
子クラスのput()、get()のオーバーロードで主キーを二つ受け、それをStringで繋げた物を主キーとしてpuser.putする方法
型パラメータで、主キー1,2、Valueの型をすべて決めてインスタンスを生成させる
これにより汎用性を高めてみた
実際に使ってみた
主キーを2つ使うことを利用して、テーブルの縦軸、横軸をキーに値を出力するテーブルを作るこのテーブルを参照して出力を行っていく処理
年 | 電気料金[円] | ガソリン価格[円] |
---|---|---|
2002 | 17.23 | 105.0 |
2003 | 17.23 | 107.0 |
2004 | 16.36 | 113.0 |
2005 | 16.16 | 125.0 |
2006 | 15.92 | 135.0 |
2007 | 16.05 | 139.0 |
2008 | 16.65 | 155.0 |
2009 | 17.87 | 120.0 |
2010 | 17.87 | 132.0 |
2011 | 17.87 | 144.0 |
2012 | 18.21 | 146.0 |
0 件のコメント:
コメントを投稿