java - Iterator 或 foreach 的延迟

标签 java swing arraylist iterator

我有一个 ArrayList,其中有 1000 个插入 SQL 语句。但在执行时间上,此 ArrayList 的 Iterator 或(增强型 for 循环)的延迟需要 1 分钟。我的 JFrame 在此期间没有响应。我能做些什么?谢谢

 Iterator itr = stms.iterator();
        while (itr.hasNext()) {                

            DB_STM.executeUpdate((String) itr.next());
        }

最佳答案

foreach 内部仅使用 iterator,为了处理来自 JDBC 的批量更新和插入,您可以使用 addBatch() 进行批量更新和 PreparedStatementexecuteBatch(),如图 here

This issue just related to internal latency of loops. Are you agree with me ?

不,我不同意。基本上,您的代码几乎没有设计问题。

(1) 您应该在后台处理批量且成本高昂(就时间而言)的操作(例如按照其他人的建议使用 SwingWorker)。

(2) 使用 JDBC addBatch()executeBatch() 减少数据库命中并提高性能。

关于java - Iterator 或 foreach 的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40958128/

相关文章:

java - 如果在运行时我引用了 bean 实例和属性名称,如何知道属性值?

java - 如何使用 spring-data-solr 在空间搜索中返回距离和分数

java - 如何加入符合条件的实体?

java - 自定义 JOptionPane 图标

java - 在 Java Swing 中用 HTML 描边文本

java - 单击时尝试更改 JButton 上的图标

java - 检查字符串是否包含确切的关键字

java - 读取 InputStream 到 Arraylist

java - java中字符串数组到数组列表的问题

java - GridView onclick 不起作用