Java 如何将此增强循环转换为for循环

Java 如何将此增强循环转换为for循环,java,arrays,loops,2d,Java,Arrays,Loops,2d,如何将此增强循环转换为for循环?其中权重和距离是二维数组。您需要做的就是定义一些迭代器(i,在本例中)并在多维数组上迭代,如下所示: for (int[] w : weights) distance[w[0] - 1][w[1] - 1] = w[2]; for(int i=0;i

如何将此增强循环转换为for循环?其中权重和距离是二维数组。

您需要做的就是定义一些迭代器(
i
,在本例中)并在多维数组上迭代,如下所示:

 for (int[] w : weights)
  distance[w[0] - 1][w[1] - 1] = w[2];
for(int i=0;i
你的意思是:

for (int i = 0; i < weights.length; i++) {
    int[] w = weights[i];

    distance[w[0] - 1][w[1] - 1] = w[2];
}
for(int i=0;i

注意
w
替换为
权重[i]

简单的答案是创建一个迭代权重长度的索引并使用它

for (int i = 0; i < weights.length; i++) 
    distance[weights[i][0] - 1][weights[i][1] - 1] = weights[i][2];
for(int i=0;i
然而,这可能很难理解,所以我会使用一些命名良好的变量。为了可读性,我还添加了一些最后的关键字

for (int i = 0; i < weights.length; i++) 
    distance[weights[i][0] - 1][weights[i][1] - 1] = weights[i][2];
for(最终int索引=0;索引
当然,您使用哪种风格以及什么更具可读性取决于您


注:上面的final是描述性和良好实践,但完全是可选的。您可以忽略它,循环也会正常工作。

@ThanaSa很乐意提供帮助。向上投票任何有助于你的答案,并选择最正确的答案作为你批准的答案。这让我们失望了:)对不起,我还没有特权这么做;p@ThanaSa你不能投票,但即使是新用户也可以接受答案。只需点击答案左侧的灰色复选标记,即可找到您认为最能回答问题的答案。
for (final int index = 0; index < weights.length; index++)
{
    final int weight0 = weights[index][0] - 1;
    final int weight1 = weights[index][1] - 1;
    final int weight2 = weights[index][2];
    distance[weight0][weight1] = weight2;
}