Java for循环迭代和循环多个变量直到满足条件

标签 java for-loop

我编写了以下代码,它可以实现我想要的功能,但我认为有比在 for 循环中执行条件语句更快的方法。

int i,j,k,l;
int[] X = new int[] {111,222,333,444};
int XL = X.length;

for (i=0, j=1; i<XL; j=(j<XL-1)?j+1:0, i++) {
  println("i:" +i +" j:" + j);
}

// returns:
// i:0 j:1
// i:1 j:2
// i:2 j:3
// i:3 j:0

最佳答案

从不同的角度来看待问题,而不只是说“做 x 以使代码速度提高 50%”,您如何测试代码以及​​如何确定代码太慢?

如今,Java 的 JIT 编译器非常非常擅长它的功能,它可以进行此类微观优化,因此您无需这样做。如果您开始进行大量的低级优化并混淆您的代码,这有点愚蠢:

  • 您可能会也可能不会实现小幅速度提升
  • 您将使您的代码几乎难以维护且难以阅读
  • 您可以欺骗 JIT 编译器,使其不进行本来会进行的优化(因为它比混淆的代码更能理解常见的 Java 习惯用法。)

如果您仍然、绝对且不可避免地需要应用程序的每一次速度提升,那么最好的办法就是在汇编程序中编写这些位。如果您只是为了让事情变得更快一点,那么现实世界中最好的建议几乎总是“不要打扰”。

关于Java for循环迭代和循环多个变量直到满足条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7140781/

相关文章:

java - Android (Java) - 通过电子邮件查找联系人并预览(如果存在)

java - 使用 Lucene 的缺点是什么?

java - 这是在单独线程上删除文件夹的正确方法吗?

javascript - 优化目标代码

c - For 循环遍历数组导致无限循环

arrays - 使用 for 循环创建 []map[string]interface{} 时出错 -> panic : assignment to entry in nil map

ios - 如何在 Objective-C 中使用 for 循环创建 GridView (例如 9*9 网格、15*15 网格)

java - SWT CTabItem setData 和 setControl 的含义

java - 使用 Jackson 将单个 java 字段映射到两个 JSON 字段

java - 统计输入字符的次数--Do-While Loops Java