【问题标题】:List<HashMap<String,String>> replacing previous hashmap values [duplicate]List<HashMap<String,String>> 替换以前的哈希图值[重复]
【发布时间】:2018-02-15 23:38:39
【问题描述】:

好的,所以我对此进行了一些研究,但被卡住了。我现在明白该列表只包含指向哈希图的指针,所以我最终得到了 5 个指向相同值的指针。我一辈子都想不出任何办法来解决这个问题。我如何存储这些值并保留它们?我尝试使用 String.valueOf() 但这显然也是一个指针。

List<HashMap<String,String>> tbcPackages = new ArrayList<HashMap<String,String>>();

JSONObject g = new JSONObject();

for(int i = 0; i <5 ; i++){

    g.clear();

    System.out.println("clear? : " + g);

    g.put("test", i);

    tbcPackages.add(g); 

    System.out.println(tbcPackages);

}

【问题讨论】:

  • JSONObject g = new JSONObject(); 放入循环中
  • 每次迭代都创建一个 new JSONObject

标签: java json list hashmap


【解决方案1】:

出现问题是因为您使用的是相同的对象“JSONObject g”。在循环的每次迭代中,创建一个新对象。修改后的代码如下:

List<HashMap<String,String>> tbcPackages = new 
ArrayList<HashMap<String,String>>();

for(int i = 0; i <5 ; i++){
  JSONObject g = new JSONObject();
  g.clear();

  System.out.println("clear? : " + g);

  g.put("test", i);

  tbcPackages.add(g); 
  System.out.println(tbcPackages);
}

【讨论】:

  • 这很好用,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-24
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
相关资源
最近更新 更多