按id字段汇总地图列表

时间:2015-05-22 21:33:16

标签: java

我正在运行一个SQL语句,它返回一组映射,如下所示:

    ["person_id" : "1", "eventid" :"1"]
    ["person_id" : "1", "eventid" :"2"]
    ["person_id" : "1", "eventid" :"3"]
    ["person_id" : "2", "eventid" :"1"]
    ["person_id" : "2", "eventid" :"2"]
    ["person_id" : "2", "eventid" :"3"]

将它们转换为以下地图层次结构的最佳方法是什么:

["person_id" : "1", ["eventid" :"1", "eventid" :"2", "eventid" :"3"]]
["person_id" : "2", ["eventid" :"1", "eventid" :"2", "eventid" :"3"]]

显示一对多的关系

请注意,此查询可以返回100,000条记录。

1 个答案:

答案 0 :(得分:0)

使用馆藏:

HashMap<String,ArrayList<String>> partners=new HashMap<String,ArrayList<String>>();
    public void store(String partner, String id){
        ArrayList<String> ids=partners.get(partner);
        if (id==null){
            partners.put(partner, ids=new ArrayList<String>());
        }
        ids.add(id);
    }
    public void main(ResultSet input) throws SQLException{
        while(input.next()){
            store(input.getString(1),input.getString(2));
        }
    }