Javaのコードを整理して書きたいと考えています。
以下のようなコードを書き、動作できることは確認済みです。
ですが変数やif文が多すぎるので、もっとスッキリ書きたいのですが、
直す方法があれば教えていただけますか。
<やりたいこと>
DBからリスト形式でデータを取得し、該当するデータの数をカウントして
回数をテーブル(html)に表示させたい。
<データの例>
triangle white
circle red
circle blue
rhombus yellow
ellipse white
circle black
・ ・
・ ・
・ ・
・ ・
<テーブル>
-
-
- | circle | triangle | square | ellipse | rhombus | total
-
red | cnt_f1c1 | cnt_f2c1 | cnt_f3c1 | cnt_f4c1 | cnt_f5c1 | cnt_c1
blue | cnt_f1c2 | cnt_f2c2 | cnt_f3c2 | cnt_f4c2 | cnt_f5c2 | cnt_c2
yellow | cnt_f1c3 | cnt_f2c3 | cnt_f3c3 | cnt_f4c3 | cnt_f5c3 | cnt_c3
black | cnt_f1c4 | cnt_f2c4 | cnt_f3c4 | cnt_f4c4 | cnt_f5c4 | cnt_c4
white | cnt_f1c5 | cnt_f2c5 | cnt_f3c5 | cnt_f4c5 | cnt_f5c5 | cnt_c5
total | cnt_f1 | cnt_f2 | cnt_f3 | cnt_f4 | cnt_f5 | record
<ソースコード>
private String getDB(Model model){
List<Table1Entity> table1DataList = table1Repository.findAll(); int record = table1DataList.size(); int cnt_f1 = 0, cnt_f2 = 0, cnt_f3 = 0, cnt_f4 = 0, cnt_f5 = 0; int cnt_c1 = 0, cnt_c2 = 0, cnt_c3 = 0, cnt_c4 = 0, cnt_c5 = 0; int cnt_f1c1 = 0, cnt_f1c2 = 0, cnt_f1c3 = 0, f1c4 = 0, f1c5 = 0; int cnt_f2c1 = 0, cnt_f2c2 = 0, cnt_f2c3 = 0, f2c4 = 0, f2c5 = 0; int cnt_f3c1 = 0, cnt_f3c2 = 0, cnt_f3c3 = 0, f3c4 = 0, f3c5 = 0; int cnt_f4c1 = 0, cnt_f4c2 = 0, cnt_f4c3 = 0, f4c4 = 0, f4c5 = 0; int cnt_f5c1 = 0, cnt_f5c2 = 0, cnt_f5c3 = 0, f5c4 = 0, f5c5 = 0; for (int i = 0; i < record; i++) { String form = table1DataList.get(i).getForm(); String color = table1DataList.get(i).getColor(); if("circle".equals(form)) { cnt_f1 += 1; if("red".equals(color)) { cnt_f1c1 += 1; } else if ("blue".equals(color)) { cnt_f1c2 += 1; } else if ("yellow".equals(color)) { cnt_f1c3 += 1; } else if ("black".equals(color)) { cnt_f1c4 += 1; } else if ("white".equals(color)) { cnt_f1c5 += 1; } } else if ("triangle".equals(form)) { cnt_f2 += 1; if("red".equals(color)) { cnt_f2c1 += 1; } else if ("blue".equals(color)) { cnt_f2c2 += 1; } else if ("yellow".equals(color)) { cnt_f2c3 += 1; } else if ("black".equals(color)) { cnt_f2c4 += 1; } else if ("white".equals(color)) { cnt_f2c5 += 1; } } else if ("square".equals(form)) { cnt_f3 += 1; if("red".equals(color)) { cnt_f3c1 += 1; } else if ("blue".equals(color)) { cnt_f3c2 += 1; } else if ("yellow".equals(color)) { cnt_f3c3 += 1; } else if ("black".equals(color)) { cnt_f3c4 += 1; } else if ("white".equals(color)) { cnt_f3c5 += 1; } } else if ("ellipse".equals(form)) { cnt_f4 += 1; if("red".equals(color)) { cnt_f4c1 += 1; } else if ("blue".equals(color)) { cnt_f4c2 += 1; } else if ("yellow".equals(color)) { cnt_f4c3 += 1; } else if ("black".equals(color)) { cnt_f4c4 += 1; } else if ("white".equals(color)) { cnt_f4c5 += 1; } } else if ("rhombus".equals(form)) { cnt_f5 += 1; if("red".equals(color)) { cnt_f5c1 += 1; } else if ("blue".equals(color)) { cnt_f5c2 += 1; } else if ("yellow".equals(color)) { cnt_f5c3 += 1; } else if ("black".equals(color)) { cnt_f5c4 += 1; } else if ("white".equals(color)) { cnt_f5c5 += 1; } } if("red".equals(color)) { cnt_c1 += 1; } else if ("blue".equals(color)) { cnt_c2 += 1; } else if ("yellow".equals(color)) { cnt_c3 += 1; } else if ("black".equals(color)) { cnt_c4 += 1; } else if ("white".equals(color)) { cnt_c5 += 1; } } model.addAttribute("cnt_f1", cnt_lb1); model.addAttribute("cnt_f2", cnt_lb2); model.addAttribute("cnt_f3", cnt_lb3); model.addAttribute("cnt_f4", cnt_lb4); model.addAttribute("cnt_f5", cnt_lb5); model.addAttribute("cnt_f1c1", cnt_f1c1); model.addAttribute("cnt_f1c2", cnt_f1c2); model.addAttribute("cnt_f1c3", cnt_f1c3); model.addAttribute("cnt_f1c4", cnt_f1c4); model.addAttribute("cnt_f1c5", cnt_f1c5); model.addAttribute("cnt_f2c1", cnt_f2c1); model.addAttribute("cnt_f2c2", cnt_f2c2); model.addAttribute("cnt_f2c3", cnt_f2c3); model.addAttribute("cnt_f2c4", cnt_f2c4); model.addAttribute("cnt_f2c5", cnt_f2c5); model.addAttribute("cnt_f3c1", cnt_f3c1); model.addAttribute("cnt_f3c2", cnt_f3c2); model.addAttribute("cnt_f3c3", cnt_f3c3); model.addAttribute("cnt_f3c4", cnt_f3c4); model.addAttribute("cnt_f3c5", cnt_f3c5); model.addAttribute("cnt_f4c1", cnt_f4c1); model.addAttribute("cnt_f4c2", cnt_f4c2); model.addAttribute("cnt_f4c3", cnt_f4c3); model.addAttribute("cnt_f4c4", cnt_f4c4); model.addAttribute("cnt_f4c5", cnt_f4c5); model.addAttribute("cnt_f5c1", cnt_f5c1); model.addAttribute("cnt_f5c2", cnt_f5c2); model.addAttribute("cnt_f5c3", cnt_f5c3); model.addAttribute("cnt_f5c4", cnt_f5c4); model.addAttribute("cnt_f5c5", cnt_f5c5); model.addAttribute("cnt_c1", cnt_c1); model.addAttribute("cnt_c2", cnt_c2); model.addAttribute("cnt_c3", cnt_c3); model.addAttribute("cnt_c4", cnt_c4); model.addAttribute("cnt_c5", cnt_c5); model.addAttribute("cnt_all", record);
return result;
}