私が説明しようとしているこの概念については、議論するのが少し難しいように思われますが、可能な限り詳細を説明するように努めます。
つまり、2つのクラスがあります。1つはsetterとgetterの属性を設定するためのもので、もう1つはすべての比較を行うメインのファイルです。
私がやりたい比較は配列内ですが、説明するには属性が多すぎます。これは現在のように見えます:
[[Year, Month, type1, type2, name, $], [Year, Month, type1, type2, name, $], [Year, Month, type1, type2, name, $]]
整数である2つだけが$とyearであり、残りは文字列です。私がどのような属性で遊んでいるかがわかったので、Excelからそれらの情報を収集するために使用している小さなスニペットを次に示します。
ArrayList<customType> workList = new ArrayList<customType>();
for (int i = start; i <= end; i++) {
Row r = sheet.getRow(i);
ArrayList tmp = new ArrayList();
tmp.setYear((int) row.getCell(0).getNumericCellValue());
tmp.setMonth(row.getCell(1).getStringCellValue());
tmp.setType1(row.getCell(2).getStringCellValue());
tmp.setType2(row.getCell(3).getStringCellValue());
tmp.setName(row.getCell(4).getStringCellValue());
tmp.setPrice((int) row.getCell(5).getNumericCellValue());
workList.add(temp);
}
さて、配列リストにはおそらく500行のリストがあります。それらはExcelから年と月でソートされます。
元:
- 2010年12月ゲームシューターHaloReach$45
- 2010年12月GameRacingForza $ 60
- 2010年12月などなどなど
- 2011年1月などなどなど
- 2011 Jan Game Racing Forza $ 60
- 2011年1月のゲームシューターHaloReach$45
- 2011年2月ゲームボード独占$20
- 2011年3月などなどなど
- 2011年3月などなどなど
- 2011年4月ゲームシューターHaloReach$45
したがって、HaloReachゲームの場合、3月と2月にフィールドが欠落していることがわかります。リストに戻って、年、月、type1、type2、nameを追加したいのですが、値を$ 0とすると、Monopolyゲームを見ると、将来も現在も存在しなかったので、貼り付けをコピーしたいと思います。 $ 0のものですが、私がリストした月ごとに。
元:
- 2010年12月ゲームシューターHaloReach$45
- 2010年12月GameRacingForza $ 60
- 2010年12月ゲームボード独占$0
- 2010年12月などなどなど
- 2011年1月などなどなど
- 2011 Jan Game Racing Forza $ 60
- 2011年1月のゲームシューターHaloReach$45
- 2011年2月ゲームレーシングフォルツァ$0
- 2011年2月ゲームシューターHaloReach$0
- 2011年2月ゲームボード独占$20
- 2011年3月などなどなど
- 2011年3月などなどなど
- 2011年3月ゲームレーシングフォルツァ$0
- 2011年3月ゲームシューターHaloReach$0
- 2011年3月ゲームボード独占$0
これにハッシュセットを使用できますか?私はこれを試してきましたが、それを成し遂げることができません。コメントされたコードは500行あります笑。
私がこれを行っている主な理由は、前の月の$$の一時的なarrayListを保持する別のarrayListを作成できるようにするためです。例:この配列リストには、現在の月のみが表示されます。
2011 Mar Game Racing Forza [60, 60, 0, 0] <-- from latest to oldest
2011 Mar Game Shooter HaloReach [45, 0, 45, 45]
etc..
名前がリストに表示されなかった場合は、価格に0を追加したいのですが、今月を確認したいと思います。これに対するより良いアプローチはありますか?必要に応じて、より良い説明を提供できるように努めます。
編集:私はmysqlデータベースなしでそれを成し遂げました。6時間以上かかりました。アドバイスをありがとう。たぶん次回はmysqlアプローチを試してみます。