Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组一半以上的Java循环_Java_Loops_Matrix - Fatal编程技术网

数组一半以上的Java循环

数组一半以上的Java循环,java,loops,matrix,Java,Loops,Matrix,我想在Java中循环半个数组;这是因为矩阵是完全对称的。如果我循环抛出I列和j行,每次对矩阵[I][j]进行运算时,我都会对矩阵[j][I]进行完全相同的运算。我应该能够通过不循环矩阵的一半来节省时间。有什么最简单的方法吗?如果你想得到一个三角形: for(int i=0; i<array.length; i++){ for(int j=0; j<=i; j++){ ..do stuff... } } for(int i=0;ifor(i=0;i

我想在Java中循环半个数组;这是因为矩阵是完全对称的。如果我循环抛出I列和j行,每次对矩阵[I][j]进行运算时,我都会对矩阵[j][I]进行完全相同的运算。我应该能够通过不循环矩阵的一半来节省时间。有什么最简单的方法吗?

如果你想得到一个三角形:

for(int i=0; i<array.length; i++){
  for(int j=0; j<=i; j++){
    ..do stuff...
  }
}
for(int i=0;i
for(i=0;i

因此,对于每一对,您只调用一次操作方法do_操作。

for(int i=0;i可能我在这里遗漏了什么,但是假设您有两个数组分别表示行和列,并假设它是对称的(如您所说):

for(int i = 0; i<array.length; i++){
  for(int j = 0; j < array[i].length - i; j++){
     // operation here
  }
}
int-dimension=rows.Length;

对于(int i=0;我不会忘记在主对角线的j循环之外做一些事情(矩阵[i][i])。你有i>大小。看起来它现在已经固定了。这显然也是一个不起作用的循环。下次我访问stackoverflow时,我一定会带上我的水晶球。人们如此回答的原因不是为了让问题海报可以剪切并粘贴到他们的IDE中。这是为了给出一个解决问题的方法。如果你注意的话找个保姆来校对可编译的代码。其他人的代码都可以编译。把它放在一个里面测试有那么难吗?很有趣。这和Andreas一样,但有一个三角形指向不同的方向吗?基本上是的。我忘了矩阵中的对角线方向,所以从技术上来说这是不正确的。这段代码似乎不正确o只在右上角到左下角对角线上的每个项目上运行DoSomething…两次。我认为目的是在矩阵“下方”中的每个项目上运行DoSomething,包括该对角线
for(int i = 0; i<array.length; i++){
  for(int j = 0; j < array[i].length - i; j++){
     // operation here
  }
}
int dimension = rows.Length;
for(int i=0; i<dimension; i++)
{
  int j = (dimension-1) - i; //need dimension-1 to avoid an off-by-one error
  DoSomething(matrix[i][j]);
  DoSomehting(matrix[j][i]);
}