質問1) ArrayListからHashMapの変換(処理要件は満たすが、より良い方法がないか)
質問2) より良い設計はどうするべきか
※ 長文です。すいません。
==
前提条件:
工程) 保守フェーズ
環境) 3階層のWebシステム(クライアント/AP/DB)、AP実行環境はJava(1.4)、DBはOracle(10g)
処理の目的:
DBに存在するレコードの一覧を画面に表示する。
ただし存在しないレコードはnull(空)表示する。
以下テーブルが存在します。
----------テーブルイメージ----------------
内部キー(ID) 表示順序 画面表示名 (以降のカラム省略)
----------------------------------------
1 1 AAAAAA
2 3 CCCCCC
3 5 DDDDDDD
----------------------------------------
画面表示は以下です。表示枠は5つ。その他の項目も存在する。
------------画面表示イメージ--------------
1: AAAAAA
2: (空)
3: CCCCCC
4: (空)
5: DDDDDDD
-----------------------------------------
現状:
DB参照は内製のORマッパを使用します。その内のひとつ、メソッドAは
上記テーブルを対象に3つのDTO(Data Transfer Object)を保持したArrayListを返却します。(orderは内部キー)
一方、画面表示ではkey=Valueでの取扱いが有利なため、HashMapで組んでいます。
このため、新たに構築したHashMapにArrayListの内容を順次展開しながら、Mapに
詰めなおすロジックが必要となっています。
(擬似コード)------
List list = ORマッパ.メソッドA();
Map map = new HashMap();
int order = 0;
int listIndex = 0;
DTO dto = null;
for (int i = 0; i < DISPLAY_MAX_COUNT; i++) {
dto = (DTO)list.get(listIndex);
order = dto.get表示順序();
if (i == order) {
map.put((String)i, dto);
listIndex++;
} else {
map.put((String)i, null);
}
}
(擬似コード)------
以上を踏まえ、質問いたします。
質問1)
ロジックに対するInput/Outputを変更しない前提で、
ArrayListからHashMapの変換でよりよい方法はないか。
質問2)
仮に設計や製造を一からやりなおすことができるとしたら、
より良い設計はどうするべきか。
長文申し訳ないです。最後まで目を通していただきありがとうございます。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
1)Java詳しくないけど、このままでも良いのでは。
コードが読み切れないほどでもないですし。パフォーマンス的な問題を抱えてるか判断つかないので。
あえて書くと、自分ならこうかな→ http://www.ideone.com/vBbUi
2)もこれだけでは判断つかないような。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- その他(プログラミング・Web制作) pythonのmap、結果の利用は1度だけ? 5 2022/06/11 12:33
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
onClickで関数呼出し後に、結果...
-
final修飾子を使っているのに、...
-
Labelコントロールに数字を代入...
-
mainメソッドのthrows節で設定...
-
【sendkeysメソッドが動かずに...
-
コマンドプロンプト実行後に画...
-
javascriptからjavaを呼び出したい
-
エクセルVBAにおけるON TIMEメ...
-
VBPをダブルクリックするとたま...
-
boolean型のフィールドとゲッタ...
-
エクセルのマクロでプリンタを...
-
CALLされていないメソッドを見...
-
Excel VBA でExcelを終了したい...
-
Refreshメソッドの使い方
-
JSPで<SELECT>の中にDBから持っ...
-
リストボックスの項目削除
-
ExcelのxlDialogInsertPictureで。
-
アクセスのレポートで円を描きたい
-
java 次の機能を有するメソッド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
Labelコントロールに数字を代入...
-
final修飾子を使っているのに、...
-
エクセルVBAにおけるON TIMEメ...
-
コマンドプロンプト実行後に画...
-
mainメソッドのthrows節で設定...
-
DataGridViewでセルクリックイ...
-
javascriptからjavaを呼び出したい
-
VBPをダブルクリックするとたま...
-
onClickで関数呼出し後に、結果...
-
ExcelのxlDialogInsertPictureで。
-
Refreshメソッドの使い方
-
JSPで<SELECT>の中にDBから持っ...
-
【sendkeysメソッドが動かずに...
-
ウィンドウを最前面にできません
-
(String args[])というメッソ...
-
C# 演算 最大値 最小値 表現の仕方
-
Excel VBA シェイプの原型のサ...
-
VB.netで、シリアル通信のタイ...
-
Excel VBA でExcelを終了したい...
おすすめ情報