I created a TreeMap> and set arraylist values(0,0) for all Keys.Then I updated only single key value. But It ends up updating all Key values. Here is my simplified code
import java.util.*;
public class Test {
public static void main(String[] args) {
TreeMap<String, ArrayList<Integer>> treeMap = new TreeMap<>();
String[] moduleList = {"apple", "orange", "grape"};
ArrayList<Integer> emptyInitialArrayList = new ArrayList<>(Arrays.asList(0, 0));
for (String tempModule : moduleList) {
treeMap.put(tempModule, emptyInitialArrayList);
}
ArrayList<Integer> tempModuleMap = treeMap.get("apple");
tempModuleMap.set(0, tempModuleMap.get(0) + 1);
for (Map.Entry<String, ArrayList<Integer>> test : treeMap.entrySet()) {
System.out.println(test.getKey());
System.out.println(test.getValue().get(0));
System.out.println(test.getValue().get(1));
}
}
}
Output for this code:
apple
1
0
grape
1
0
orange
1
0
I am missing something. Cannot find where I am doing the mistake.