我正在运行一个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)
使用馆藏:
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));
}
}