for (int i = 0; i < 30 - list.size(); i++) {
list.add(new Element()); // add a new element
}
目的就是想把原有的list改造一下,使其正好有30个elements。
可是结果却是添加了15个。
原因很简单,for循环继续运行的条件是(i < 30 - list.size()),而list.size()是一直在变化的,
所以加到第15个之后,就不能再添加了。
很初级的错误,犯了就说明基础知识还是不牢固,记录下来以防止以后犯错。
正确的一种写法如下:
List list = new ArrayList();// dummy code, so create a new ArrayList object.
for (int i = 0, n = 30 - list.size(); i < n; i++) {
list.add(new Element()); // add a new element
}