2015-05-22 34 views
0

我正在返回地图的集合的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条记录。

+0

你的意思是在时间,资源,代码的可读性或什么的问候“最好的办法”? –

+0

也许这个答案可能很有用http://stackoverflow.com/a/12991149/3281415 – SerCrAsH

回答

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