私は複数の行を持つresultSetを持っています。私はハッシュマップを作りたい。しかし、arrayListを格納してkeyを列の1つにするとき、各キーに対して、すべての行がarrayListに格納されます。 これは、各キーに対して、そのキーの正確な行ではなく、すべての行が格納されることを意味します。列の1つとしてkeyを持つhashmapにarraylistを入れてください
HashMap> map = new HashMap>(); Pojo pojo = null; PreparedStatement ps = null; ResultSet rs = null; ArrayList list = null;
try { ps = DatabaseManager.prepareStatement(query); ps.setInt(1, number); rs = ps.executeQuery(); while(rs.next()){ pojo = new Pojo(); pojo.setId(rs.getInt("ID")); pojo.setDate(rs.getDate("DATE")); pojo.setTotal(rs.getDouble("TOTAL")); list.add(pojo); map.put(rs.getInt("ID"), list); } rs.close();
ようにする必要がありつつ、すべてのキーのリストのサイズは15です。が ID行 1A 3 2A 4 3C 2 4W 6
希望の結果を得るためにコードをどのようにする必要がありますか?
while(rs.next()){
// Check if map contains list
if (map.contains(rs.getInt("ID"))
list = map.get(rs.getInt("ID"));
else
list = new ArrayList<Pojo>();
pojo = new Pojo();
pojo.setId(rs.getInt("ID"));
pojo.setDate(rs.getDate("DATE"));
pojo.setTotal(rs.getDouble("TOTAL"));
list.add(pojo);
map.put(rs.getInt("ID"), list);
}
あなたはこのような何かを試すことができ
なぜキーとリストをハッシュマップに保存したいのですか?代わりに、キーとpojo自体を保存することができます。 – Santosh
私はキーのために複数の行を持っています。だから私はpojoを格納する場合、1つの値だけが格納されます。 –