java - 对我来说,进行这些空检查并提高此代码的性能的更好方法是什么

标签 java performance null immutability

这项工作需要 30 多个小时的时间。该迭代器保存 800k 条记录,并且必须为每条记录执行循环,并且在同一方法中大约有 20 多个这样的检查。我怎样才能避免这里的圈复杂度?

CustomerPreference newRecord = null;

while (iterator.hasNext())
              {

final CustomerPreference current = iterator.next();

                     if (newRecord != null)
                     {
                           if (!newRecord.getEmail().equals(current.getEmail()))
                           {
                                  resList.add(newRecord);
                                  newRecord = current;
                           }
                     }
                     else
                     {
                           newRecord = current;
                     }

                     if (null != current.getEmailPref())
                     {
                           newRecord.setEmailPref(current.getHdCaEmailPref());
                     }

              else
                     {
                           if (newRecord.getEmailPref() == null)
                           {
                             newRecord.setEmailPref(NO_CHANGE);
                           }
                     }

最佳答案

如果这只是一个内部应用程序,请取出检查并将代码包含在 try/catch block 中,特别是在空引用的可能性很小的情况下。

catch block 只会继续循环。

关于java - 对我来说,进行这些空检查并提高此代码的性能的更好方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34382734/

相关文章:

java - 如何比较时间?

java - 企业级应用程序中的事务

python - Python中有 `?.`运算符吗?

php - PHP 值怎么可能包含不等于空字符串或 null 的零长度字符串?

java - 具有空对象模式的 DAO

java - 在哪里可以找到官方 Java 编码/样式标准?

java - 将 Spark 流输出写入套接字

java - 即使使用 slf4j,您是否应该保护您的日志记录?

java - 如何通过按 Ctrl+C 和 Ctrl+Alt+Del 来停止/终止 java 程序的窗口平台?

performance - MATLAB:GUI 逐渐变慢