我想一次性更新文档中的多个字段,我想要修改列表中 "md5"
的值为 "download=0"
。但是当我运行代码时,它会抛出一个异常:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
这是我正在做的事情:
//the list is an list of "md5"
List<BasicDBObject> updateCondition=new ArrayList< BasicDBObject>(list.size());
for(int i = 0 ; i < list.size(); i++) {
updateCondition.get(i).put("md5", list.get(i));
DBObject updatedValue=new BasicDBObject();
updatedValue.put("download", 0);
DBObject updateSetValue=new BasicDBObject("$set",updatedValue);
vt_col.update(updateCondition.get(i), updateSetValue);
}
异常发生在:
updateCondition.get(i).put("md5", list.get(i));
我希望你能帮助我,感谢你的帮助。
ArrayList<T>(int initialCapacity)
并不会创建一个具有initialCapacity
条目的列表,而是创建一个空列表,并为其保留了initialCapacity
条目的内存空间。设置集合的保留容量是一种纯性能优化,但并不会对其行为产生任何影响。 - Philipp