java - 避免越界。尝试 catch 与条件检查

标签 java optimization

我有一个循环迭代,其中包含不同大小的各种数组上这种形式的许多条件

if (a[k]<=x){
     if(al[k+1]==y){
         if(a[k+2]>=x){
         }
     }
}
if (b[k]<=x){
     if(al[k+1]==y){
         if(b[k+2]>=x){
         }
     }
}

这是因为我不想为每个数组创建单独的循环。 显然,如果我根据较大数组的大小进行循环,则另一个数组可能会超出范围。 为了避免这种情况,我想在每个条件下添加多重检查,例如

if (b[k]<=x){
     if(sizeAl<k+1 && al[k+1]==y){
         if(sizeB<k+2 && b[k+2]>=x){
         }
     }

或者我可以使用 try catch

就性能而言,什么是更好的选择? 欢迎任何建议

最佳答案

这与性能无关——数组索引越界不应该出现在您的代码中,如果出现,则表明代码已损坏,因此您永远不应该 try catch 它。相反,使用单元测试或其他测试来尝试使您的代码尽可能防弹。

关于java - 避免越界。尝试 catch 与条件检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28256628/

相关文章:

java - 符合 Sun 认证 Java 程序员 (SCJP) 准备的项目理念?

java - 将 Primefaces 从 3.2 更新到 3.4 会抛出 java.lang.NoSuchFieldError : SKIP_ITERATION

c# - 非静态字段、方法或属性需要对象引用

sql - 如何优化 BINARY(N) 的 SQL 查询?

machine-learning - scikit-learn 中的多层感知器

language-agnostic - 哪些优化可以立即进行?

java - 对动画进行分组以便顺序执行

algorithm - 减去链表节点

c# - 通过 C 和/或汇编帮助优化 C# 函数

java - Eclipse 无法识别 Debian/Linux 上的 Apache Tomcat