【发布时间】:2011-10-02 13:52:17
【问题描述】:
我有一个对象数组(文件列表非常好)。如何遍历这个数组并删除一些对象(在 Java 中) - 取决于条件?
File[] files = file.listFiles();
for(File f: files) {
if(someCondition) {
// remove
}
}
【问题讨论】:
-
您不应该在迭代数组时从数组中删除元素。这可能会导致错误的索引。
-
@Harry Joy,你正在考虑一个列表。在数组中,您可以使用 null 更改对象/用下一个对象覆盖它,但您不能删除位置,因为数组无法调整大小。
-
@Harry Joy:你没有好好吸取教训。当您使用 Iterator 遍历 Collection (不是数组)并通过其他方式删除元素时(比如说
list.remove()),您所说的适用 -
将其转换为 List 类型并做任何您想做的事情,然后将其重新分配给您的数组。
-
@SJuan76 ,@Op De ZCirkel:我的错。我很抱歉。