只有哈希映射的最后一个条目被添加到嵌套哈希映射中

问题描述 投票:0回答:1
HashMap<String,String> details=new HashMap<>();
            switch(value){
                case "approved":
                    if(rs!=null) {
                        HashMap<Integer, HashMap<String, String>> detailsall = new HashMap<>();
                        int i = 1;
                        while(rs.next()) {                          
                            String NO = rs.getString("NO");
                            String CLASS = rs.getString("CLASS");
                            String CLASS_DESC = rs.getString("CLASS_DESC");

                            details.put("NO", NO);
                            details.put("CLASS", CLASS);
                            details.put("CLASS_DESC", CLASS_DESC);
                                                    
                            System.out.println(details);
                            detailsall.put(i,details);
                            System.out.println(detailsall);
                        }
                        for (Map.Entry<Integer, HashMap<String, String>> detailsallmap : detailsall.entrySet()) {
                            System.out.println(detailsallmap.getKey() + " = "+ detailsallmap.getValue());
                        }
                    }else {
                        details=null;
                    }
                    break;            
            }

迭代结果集的每个条目并添加到哈希映射,并将该哈希映射添加为嵌套映射。 但它仅作为最后一个条目添加到嵌套哈希映射中。

1。详细信息是主哈希图,其中添加结果集条目

2。 Detailsall 是嵌套映射,其中添加详细信息哈希映射条目

java loops dictionary hashmap resultset
1个回答
0
投票

您需要增加计数器。

detailsall.put(i++,details);
© www.soinside.com 2019 - 2024. All rights reserved.