when I use ArrayList<Map<String,Object>> in multi-layer loop, the ArrayList<Map<String,Object>> are weird.
import java.util.*;
public class Main {
public static void main(String [] args){
ArrayList<Map<String, Object>>resList=new ArrayList<>();
ArrayList<Map<String, Object>>resList1=new ArrayList<>();
ArrayList<String>feeNameList=feeNameList();
for(int i=0;i<1;i++){
Map<String, Object>temp=new HashMap<>();
for(int j=0;j<feeNameList.size();j++){
temp.put("feeName",feeNameList.get(j));
System.out.println(temp);
resList.add(temp);
}
}
System.out.println(resList);
System.out.println("------------------------------------------------");
for(int i=0;i<feeNameList.size();i++){
Map<String, Object>temp=new HashMap<>();
temp.put("feeName",feeNameList.get(i));
System.out.println(temp);
resList1.add(temp);
}
System.out.println(resList1);
}
public static ArrayList<String>feeNameList(){
Set<String> costNameSets=new HashSet<>();
costNameSets.add("CIC");
costNameSets.add("VGM申报费VGM_COST");
costNameSets.add("延补料费");
ArrayList<String> costNameList=new ArrayList<>();
costNameList.addAll(costNameSets);
return costNameList;
}
}
So What I want to ask is that when I use the ArrayList<Map<String, Object>> in a multi-layer loop, why the ArrayList<Map<String, Object>> contents are the same.