How can I update the only str2
by not really updating str1
and str
? Why is the change in str2
is updating str1
and str
? Is it because of the object reference?
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class test {
List<HashMap<String, String>> str;
public static void main(String[] args) {
Map<String, String> hmap = new HashMap<String, String>();
hmap.put("1", "s1");
hmap.put("2", "s2");
test testobj = new test();
testobj.str = new ArrayList<HashMap<String, String>>();
testobj.str.add((HashMap<String, String>) hmap);
testing(testobj.str);
}
static void testing(List<HashMap<String, String>> str) {
List<HashMap<String, String>> str2 = new ArrayList<HashMap<String, String>>();
List<HashMap<String, String>> str1 = str;
str2.add(str1.get(0));
str2.get(0).put("1", "new");
System.out.println(str);
System.out.println(str1);
System.out.println(str2);
}
}