2017-12-05 8 views
0

私は複数の行を持つ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(); 
    

が ID行 1A 3 2A 4 3C 2 4W 6

ようにする必要がありつつ、すべてのキーのリストのサイズは15です。

希望の結果を得るためにコードをどのようにする必要がありますか?

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); 
} 

あなたはこのような何かを試すことができ

+0

なぜキーとリストをハッシュマップに保存したいのですか?代わりに、キーとpojo自体を保存することができます。 – Santosh

+0

私はキーのために複数の行を持っています。だから私はpojoを格納する場合、1つの値だけが格納されます。 –

答えて

0

は、それが動作願っています。

+0

このコードは機能しましたか? – Santosh

+0

はい、うまくいきました。 –

関連する問題