使用foreach填充2D数组Java

时间:2019-10-11 22:01:06

标签: java arrays iteration

因此,我尝试使用两个foreach循环迭代2d字符串数组,并将所有值设置为默认字符串。但是,我必须在混淆foreach语法。我已经尝试了两种方法,但都没有用。我应该放弃并只使用常规的for循环吗?

import java.util.ArrayList;
public class Test{
String[][] table;
table = new String[11][6];
for(String[] x:table) {
for(String z:x) {
z="asd";}}
}

因此,此时的问题是Java只是重新定义了循环变量,而没有触及实际的数组。因此,我尝试将其放入第二个循环:

table[x][z]="asd";

哪个都不起作用,因为这些都没有指向int。所以我想我的问题是: 是否可以使用foreach循环本身的循环变量将java指向它在foreach循环中当前位于的索引?我是否使用类似getIndex()的东西?还是我只需要在每个循环中添加一个int变量并对其进行++编码就可以拥有索引?

1 个答案:

答案 0 :(得分:2)

foreach返回只读值,因此这就是第一种方法不起作用的原因。 您可以使用for代替foreach。

for(int i = 0; i < table.length; i++) {
    for(int j==0; j<table[i].length; j++) {
        table[i][j]="asd";
    }

}

如果要使用foreach,可以将索引分开保存。我不明白你为什么会这么做。

int i=0;
int j;
for(String[] x:table) {
    j=0;
    for(String z:x) {
       table[i][j]="asd";
       j++;
    }
    i++;
}