多層ループで ArrayList<Map<String,Object>> を使用すると、ArrayList<Map<String,Object>> が奇妙になります。
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;
}
}
だから私が聞きたいのは、多層ループで ArrayList<Map<String, Object>> を使用するとき、なぜ ArrayList<Map<String, Object>> の内容が同じなのかということです。