java - 在迭代器上使用删除是否会使代码运行速度非常慢?

标签 java iterator

我有一个代码如下,它在迭代器上使用remove,如下所示:

Collection<X> getdata(){
   Collection<X> Xs = this.getXs();
    Iterator<X> iterator = Xs.iterator();
    while (iterator.hasNext()) {
        X x = iterator.next();
        if (somecondition) {
            iterator.remove();
            }
        }
    }

 return Xs;
}

它有时有效,有时需要很长时间,并且我的线程挂起。 getXs 方法从数据库返回数据。

最佳答案

迭代和删除本身不会出现您所描述的异常行为。还有其他工作环境条件。由于您描述了与数据库的交互,因此延迟和挂起很可能与代码与数据交互的方式有关。实际问题可能有无数的变化,因此您可以提供的任何其他详细信息(而不是您发布的非常笼统的示例)都将有助于解决您的问题。

关于java - 在迭代器上使用删除是否会使代码运行速度非常慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4647389/

相关文章:

c++ - 如何检查 STL 迭代器是否指向任何东西?

c++ - boost::spirit:多维输入的迭代器和解析器

iterator - 使用 python 连接上一句和下一句

c++ - std::move() 是否会使迭代器无效?

java - 内联网应用程序的签名小程序

java - Swing 改变 BasicArrowButton 的前景色

java - 将 DLL 导入 Eclipse Java 项目

java - 如何将操作栏添加到第二个 Activity 而不是第一个 Activity

java - org.apache.batik.transcoder.TranscoderException : null Premature end of file

c++ - STL 映射输出迭代器查找值