java - create a list from another list and remove elements from copied list -


suppose have following structure , created list this. if temp.remove(0) won't affect on original list temp.get(0).vars.remove(0) remove elements original list too.

i think new arraylist(top.mids) not doing deep copy how come temp.remove(0) doesn't affect on original list?

//top class init part , adding elements omitted list<mid> temp = new arraylist(top.mids); temp.remove(0); temp.get(0).bots.remove(0);   public class top{     list<mid> mids = new arraylist<mid>(); }  public class mid{     list<bot> bots = new arraylist<bot>();  }  public class bot{     int id;  } 

yes understanding correct. list newlist = new arraylist(collection); shallow copy. can modify newlist without affecting original collection, each reference same elements if modify element in 1 list, other list's element change.

this called shallow copy. here's visual representation of i've described:

enter image description here

the things @ bottom objects in array.


Comments

Popular posts from this blog

Unable to remove the www from url on https using .htaccess -