以下迭代ArrayList
:
for (String[] line : dataList) {
//adding items in the list here
item.add(line[0]);
if(dataList.isEmpty()){ //attempting to clear dataList when it has iterated through to the last element but not working as expected
dataList.clear()
}
}
如何在对元素进行迭代后清除ArrayList
中的元素?
答案 0 :(得分:3)
删除if(dataList.isEmpty())
块并在循环后清除列表。迭代不会删除项目。
所需的代码是:
for (String[] line : dataList) {
item.add(line[0]);
}
dataList.clear();
答案 1 :(得分:0)
应该是这样的,
for (String[] line : dataList) {
item.add(line[0]);
}
dataList.clear();
答案 2 :(得分:0)
正如其他人所指出的那样:
for (String[] line : dataList) {
item.add(line[0]);
}
dataList.clear();
将清除列表。如果它已经空了,那很好。 clear()
将无所作为,并正常返回。
我已经回答了问题,因为您可能想知道是否需要清除它。如果dataList
在方法结束时超出范围,那么垃圾收集器将为您清理。
如果您在后续代码中重复使用'datalist
,那么最好的答案是 - 不要。在循环开始时声明一个局部变量。它肯定更清洁,通常更快,只是继续创建新对象而不是回收。
注意:在某些情况下清除列表是合适的。如果它是一个将继续超出该方法的类字段。但是,如果它作为临时商店使用似乎不合适。