我花了太多时间来阅读列表-用Java进行收集,我找不到比arraylist更好的解决方案来从JSON数组中收集数据并编辑数据(如果通过mylist中的键存在或不存在),只需将模型放在mylist中。我陷入同一问题的两个不同项目中。
有人可以告诉我我在哪里混吗? 这是第一种情况的代码
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;
}
我尝试了几种解决方案-包含,但是我总是遇到相同的问题。
答案 0 :(得分:0)
我希望我正确理解了这个问题,您正在尝试通过键保存数据,并且如果键已经存在于集合中,则覆盖该数据/继续而不覆盖该数据?
在这种情况下,可以使用Map集合而不是列表集合。 Map集合在键和值之间映射,并且键不能重复两次(键存储在Set集合中,这意味着不允许重复)。
我建议阅读有关Map和HashMap的信息。