Java 使用hashmap添加Arraylist索引?
在arraylist中,我需要添加hashmap值并声明 阿拉斯Java 使用hashmap添加Arraylist索引?,java,android,arraylist,indexing,hashmap,Java,Android,Arraylist,Indexing,Hashmap,在arraylist中,我需要添加hashmap值并声明 阿拉斯 public static ArrayList<Map<String, Object>> UploadingArray = new ArrayList<>(); and map Map<String,Object> image_details=new HashMap<>(); and int imageid; for(int i=0;i<4;i++){
public static ArrayList<Map<String, Object>> UploadingArray = new ArrayList<>();
and map
Map<String,Object> image_details=new HashMap<>();
and
int imageid;
for(int i=0;i<4;i++){
imageid=i;
new method()
}
为什么所有位置的id都相同?有谁知道这个问题,请帮帮我?
这只是一个模型,“i”值将通过调用方法来更改,它们具有相同的值,因为您要将相同的对象多次添加到
ArrayList
您应该在循环中创建一个新的Map
对象:
ArrayList<Map<String, Object>> list = new ArrayList<>();
for(int i = 0; i < 4; i++){
// creating new object on every iteration
Map<String, Object> imageDetails = new HashMap<>();
imageDetails.put("imageId", i);
imageDetails.put("status", "new");
list.add(imageId, imageDetails);
}
ArrayList list=new ArrayList();
对于(int i=0;i<4;i++){
//在每次迭代中创建新对象
Map imageDetails=newhashmap();
imageDetails.put(“imageId”,i);
imageDetails.put(“状态”、“新”);
列表。添加(imageId、imageDetails);
}
在名为method
的方法中,您可以访问变量i
。该变量不是循环中的i
。似乎您有一个名为i
的成员变量,它一直是3。声明新方法(int num)而不是新方法()
ArrayList<Map<String, Object>> list = new ArrayList<>();
for(int i = 0; i < 4; i++){
// creating new object on every iteration
Map<String, Object> imageDetails = new HashMap<>();
imageDetails.put("imageId", i);
imageDetails.put("status", "new");
list.add(imageId, imageDetails);
}