只有哈希图的最后一个条目被添加到嵌套哈希图并返回

问题描述 投票:0回答:1
HashMap<String,String> details=new HashMap<>();
            switch(value){
                case "approved":
                    if(rs!=null) {
                        
                        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);
                            HashMap<Integer, HashMap<String, String>> detailsall = new HashMap<>();
                            detailsall.put(i,details);
                            i++;
                            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 hashmap resultset
1个回答
1
投票

您需要增加计数器。

detailsall.put(i++,details);

此外,您还需要在 while 循环内移动创建详细信息 HashMap 的行。

© www.soinside.com 2019 - 2024. All rights reserved.