2015-05-22 2 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"]] 

Показаны один-к-многим

Обратите внимание, что этот запрос может вернуть 100000 записей.

+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)); 
     } 
    } 
Смежные вопросы