list - Simultaneously Iterate over multiple arrayLists in Java..Most efficiently -


i writing api, creates list of user objects , makes call 3rd party webservice list. 3rd party webservice responds list of userdetails objects containing details of users. ex:

class user{ string id; string name; } 

a list constructed above user objects , passed on 3rd party webservice.

list<user> users = new arraylist <user>(); 

the 3rd party webservice responds list of userdetails objects.

class userdetails {     string id;     string email;     string accountnumber;     ...     ...     }   list<userdetails> userdetails = new arraylist <userdetails>(); 

now, construct response of api, construct list of userresponse objects contains mix of fields in user , userdetails objects.

class userresponse{ string id; string name; string email; string accountnumber; .... ...  } 

to construct list of userresponse objects, have iterate on user list , userdetails list , check if id's match , construct userrepsonse object , add them list. code below.

list <userresponse> userresponselist = new arraylist<userresponse>(); for(user user : userrequest){  for(userdetails userdetail: userdetails){  if(user.getid().equalsignorecase(userdetail.getid())){     userresponse userreponse = new userresponse ();     userreponse.setid(user.getid());     userreponse.setname(user.getname());     userreponse.setemail(userdetail.getemail());     userreponse.setaccountnumber(userdetail.getaccountdetail());      userresponselist.add(userreponse);      }  } } 

and return userresponselist.

the above code works. iterating on 2 lists scaring me. api can have 200 users in 1 request. send list of 200 user objects 3rd party service , 3rd party webservice responds list of 200 userdetails objects.

this means iterating 200*200 items in double iterator.

is there better , more efficient way perform logic instead of iterating many times ?

advance thanks..

since use id field common identifier, both objects, why don't try make map userdetails grouped id. after iterate users list , use map.get(id) retrieve each user it's details , can build desired list of objects based on 2 type of objects.


Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -