【发布时间】:2017-12-05 12:23:08
【问题描述】:
我有一个包含多行的结果集。我想做一个哈希图。但是在存储 arrayList 并将键作为列之一时,对于每个键,所有行都存储在 arrayList 中。 这意味着对于每个键,所有行都被存储,而不是该键的确切行。
-
HashMap> map = new HashMap>(); Pojo pojo = null; PreparedStatement ps = null; 结果集 rs = null; ArrayList 列表 = 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
那么代码应该如何得到想要的结果呢?
【问题讨论】:
-
为什么要将key和list存储在hashmap中?相反,您可以存储密钥和 pojo 本身。
-
一个键有多行。因此,如果我存储 pojo,则只会存储一个值。