【问题标题】:Arraylist Index adding with hashmap?使用哈希图添加 Arraylist 索引?
【发布时间】:2016-08-08 07:36:24
【问题描述】:

在数组列表中,我需要添加 hashmap 值并声明 arralist as

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 将发生变化 imageid=(另一个活动).imageid;

  new method(){
    image_details.put("imageid",i);
    image_details.put("status","New");
    UploadingArray.add(imageid,image_details);
 }


but the result of UploadingArray like

[0]
id=3;
status=New
[1]
id=3;
status=New
[2]
id=3;
status=New
[3]
id=3;
status=New

为什么所有职位的 id 都相同?任何人都知道这个问题,请帮助我? 这只是一个模型,“i”的值将通过调用方法来改变

【问题讨论】:

  • 在名为method 的方法内部,您可以访问变量i。该变量 not 是循环中的 i。看来您有一个名为 i 的成员变量,它一直是 3。
  • 声明新方法(int num)而不是新方法()

标签: java android arraylist indexing hashmap


【解决方案1】:

它们具有相同的值,因为您将 same 对象多次添加到您的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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多