java是一个从JSON数组收集数据的arraylist
我花了太多时间阅读java中的列表收集,我找不到比arraylist更好的解决方案来从JSON数组中收集数据,并编辑数据(如果mylist中存在,则按键),或者如果不存在,则将模型放入mylist中。在同一个问题上,我被困在两个不同的项目中
- 我无法通过arraylist for loop编辑arraylist中的int类型李>
- 我无法在arraylist中从JSON数组中按键找到模型并编辑新参数李>
谁能告诉我哪里弄错了? 下面是第一种情况的代码
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 楼答案
我希望我正确理解了这个问题,您正在尝试按键保存数据,如果该键已存在于集合中,是否覆盖该数据/是否继续而不覆盖该数据
如果是这种情况,则可以使用地图集合,而不是列表集合。 映射集合在键和值之间映射,键不能重复两次(键存储在集合中,这意味着不允许重复)
我建议阅读关于Map和HashMap的内容
https://www.tutorialspoint.com/java/java_map_interface.htm