以适当的格式管理/填充Hash-Map中的数据

时间:2015-01-27 12:15:54

标签: java database data-structures arraylist hashmap

实际上我从数据库中检索数据肯定是以表格的形式。我想以特定格式管理哈希映射中的数据(表)。首先,我向您展示以下代码,并在控制台中输出:

代码:

 ResultSetMetaData rsmd = resultSet.getMetaData();
    int columnsNumber = rsmd.getColumnCount();
    while (resultSet.next()) {
        for (int i = 1; i <= columnsNumber; i++) {
           if (i > 1) System.out.print(",  ");
           String columnValue = resultSet.getString(i);
           System.out.print(columnValue );
           }
         System.out.println("");
    }

输出:

 ID      SkillGroup

 47010,  EN.SG
 47013,  shabber_hassan
 47014,  CAM.SG
 47014,  CIM.SG
 47014,  EN.SG
 47014,  JZskillGroup
 47014,  camp_agent.SG
 999,    EN.SG
 3333,   absaara_test2.SG
 3333,   absaara_test3.SG

我想制作一个应按以下方式填写的Hasp-Map:

密钥:应该是ID 价值:与一个ID相关的所有技能组(可能在Arraylist中)

我该怎么做:

ID   --->  [All skill group related to associated ID]
47010 ---> [EN.SG]
47013 ---> [shabber_hassan,]
47014 ---> [CAM.SG,CIM.SG,EN.SG,JZskillGroup,camp_agent.SG]
999   ---> [EN.SG]
333   ---> [ab_test2.SG,ab_test3.SG]

一些帮助会被批准!!

1 个答案:

答案 0 :(得分:3)

使用HashMap<Integer,List<String>>

假设您的表有两列(ID和技能组),基于您的输出:

Map<Integer,List<String>> map = new HashMap<>();
while (resultSet.next()) {
    String key = resultSet.getInt(1);
    String value = resultSet.getString(2);
    List<String> values = map.get(key);
    if (values == null) {
        values = new ArrayList<String>();
        map.put(key,values);
    }
    values.add(value);
}