注意:我不知道 doSomething 是否会删除该元素。这是我的数据结构需要处理的例外情况。
我的问题很简单:
int size = list.size();
for(int i = 0; i < size; i++) {
MyObj mo = list.get(i);
mo.doSomething();
}
现在如果 doSomething() 从列表中删除 mo,我最终会得到一个 ArrayIndexOutOfBounds 因为列表现在已经缩小了。
我应该使用什么数据结构来允许迭代并有可能删除?我不能在这里使用迭代器,换句话说,我不能让 doSomething 返回一个布尔值并调用 iterator.remove()。数据结构必须以某种方式处理这种情况并继续迭代仍然存在的其余元素。
编辑:我不知道 doSomething 是否会删除该元素。这是我的数据结构需要处理的例外情况。
第二部分=>制作一个智能监听器通知器以避免到处重复代码