一个从JSON数组收集数据的arraylist

时间:2018-12-21 07:58:40

标签: java android json arraylist

我花了太多时间来阅读列表-用Java进行收集,我找不到比arraylist更好的解决方案来从JSON数组中收集数据并编辑数据(如果通过mylist中的键存在或不存在),只需将模型放在mylist中。我陷入同一问题的两个不同项目中。

  1. 我无法通过arraylist在循环中编辑arraylist中的int类型。
  2. 我无法通过JSON数组中的键在arraylist中找到模型并编辑新参数。

有人可以告诉我我在哪里混吗? 这是第一种情况的代码

if (kolekcija.get(Id).isEmpty()){
    kolekcija.get(Id).add(model);
} else {
    try {
        boolean isEmptyModel = false;
        for (int i = 0; i < kolekcija.get(Id).size(); i++){
            if (kolekcija.get(Id).get(i).getName.equals(model.Name)) {
                double dva = kolekcija . get (Id).get(i).getSum();
                kolekcija.get(Id).get(i).setSum(dva + 1.00);
            } else {
                isEmptyModel = true;
            }
        }
        if (isEmptyModel) {
            kolekcija.get(Id).get(i).add(model);
            isEmptyModel = false;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

这是第二种情况的代码

// inside for loop to collect json object
MyModel model = new MyModel();
model.setregister(reg);
boolean isEmptyModel = false;

if(listamodela.size() == 0){
    listamodela.add(model);
}

for(int i = 0; i < listamodela.size(); i++ ){
    if (listamodela.get(i).getregister().equals(reg)) {
        listamodela.get(i).addValueToList(value);
    } else {
        isEmptyModel = true;
    }
}

if(isEmptyModel){
    listamodela.add(model);
    isEmptyModel = false;
}

我尝试了几种解决方案-包含,但是我总是遇到相同的问题。

1 个答案:

答案 0 :(得分:0)

我希望我正确理解了这个问题,您正在尝试通过键保存数据,并且如果键已经存在于集合中,则覆盖该数据/继续而不覆盖该数据?

在这种情况下,可以使用Map集合而不是列表集合。 Map集合在键和值之间映射,并且键不能重复两次(键存储在Set集合中,这意味着不允许重复)。

我建议阅读有关Map和HashMap的信息。

https://www.tutorialspoint.com/java/java_map_interface.htm