- ベストアンサー
テーブルの1レコードを継承してクラスを定義する方法
あるサイト(URLは忘れました。)で、 「 テーブルの1レコードを定義したクラスを、継承 して、新しいクラスの中でテーブルを作成する。 」 と記載されていたのですが、コーディング上どのよう にするかを迷っております。 ご指導のほどお願いします。 記憶にある図解です。 ┌──────────┐extends 1レコードクラス │ │ │┌┬┬┬┬┬┬┬┬┐│ ││││││││││││ │└┴┴┴┴┴┴┴┴┘│ │ │ └──────────┘ ┌┐ ││が1レコードクラスに相当します。 └┘
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
たとえば 1レコードがもっている情報がIDと名前だとします。 public class Meisai{ private String id; private String name; public Meisai(){ id=""; name=""; } public String getId(){ return this.id; } public String getName(){ return this.name; } } でこの明細をためこんでおくクラスをつくります。 public class ListData{ private Vector data; public ListData(){ data = new Vector(); } public getMeisai(int i){ return (Meisai)this.data.get(i); } } て感じでやれるのではないでしょうか?
その他の回答 (3)
- akira-h
- ベストアンサー率80% (4/5)
VectorではなくHashMapを使うのはどうでしょうか? public class ListData{ private Map table; public ListData(){ table = new HashMap(); } public getMeisai(String id){ return (Meisai)table.get(id); } public void setMeisai(String id, Meisai data) { table.put(id,data); } } HashMapを使えばIDをキーとしてデータが取得できます。 ただ、nameが一致するデータを取得使用とする場合、一つ一つ調べる必要がありますが。
お礼
返事が遅くなりすみません。 このクラスは、このようなときに利用するのですね。 「id」で全て処理するようにするのであれば、このクラスは活用できますね。 検討してみます。 ありがとうございます。
- chi-kon
- ベストアンサー率43% (58/132)
ちなみにsetterとかは省いちゃったのですが 適当につくってください。 取り出すところだけイメージしてみました。
お礼
返事が遅くなってすみません。 勉強になります。 setterは、 public int AddMeisai( Meisai tMeisai ) { this.data.add( tMeisai ); return( 0 ); } としようと思います。 たびたびすみませんが、Vectorに登録した内容から 「id」に一致するデータを抽出する場合は、Vector から1レコードずつ獲得しチェックしながらする 方法しかないのですか?VectorのAPIを見たら、「 比較」するメソッドが無かったので…。 すみませんが、よろしくお願いします。
- chi-kon
- ベストアンサー率43% (58/132)
テーブルってどういうことさしているのでしょうか? データのなかにデータを持っている状態をつくればいいのですか? これだったら配列とか Vectorとかをつかえばできるとおもいます。
補足
詳細を記載していませんでした。 すみません。 昨日 http://oshiete1.goo.ne.jp/kotaeru.php3?q=589973 について質問せて頂きました。 これは、1レコードについてのもち方でしたので、 それを複数レコードのよう保持したいと思いました。 すみませんが、よろしくお願いします。
お礼
返事が遅くなりすみません。 #3でお礼させて頂きました。