/ / iterating multidimensional array с усъвършенстван за loop java - java, multidimensional-array, foreach

iterating multidimensional array с подобрен за loop java - java, multidimensional-array, foreach

При iterating чрез масив x с подобренза цикъла какво представляват y и z и как работи цикъла. Ето кода, който написах, работи, но не разбирам точно защо и как работи.Ако някой би могъл да обясни синтаксиса на for loop при показването на многоизмерния масив, бих го оценил.

// enhanced for loop
String[][] x =
{
{"a", "a^2", "a^3"},
{"1", "1", "1"},
{"2", "4", "8"},
{"3", "9", "27"},
{"4", "16", "64"}
};

for (String[] y: x)
{
for (String z: y)
{
System.out.print(z + "t");
}
System.out.println();

Отговори:

1 за отговор № 1

Усъвършенстваният за цикъл на масив е еквивалентен на iterating над индексите на масива в нормален за цикъл:

for (int i=0; i<x.length; i++)
{
String[] y = x[i];
for (int j=0; j<y.length; j++)
{
String z = y[j];
System.out.print(z + "t");
}
System.out.println();
}

Когато итерирате над два матрица, всеки елемент на външния масив е сам по себе си масив.


1 за отговор № 2
for (String[] y: x)

Means "за всеки String масив (наречен y) в масива от масиви (наречен x)".

Така например y [0] е {"a", "a^2", "a^3"}

Тогава по подобен начин, for (String z: y) означава "за всеки String, наречен z в String масива, който преди това сме определили като y.

Така z [0] при първото преминаване на y е "a". Тогава z [1] е "a ^ 2" и z [2] е "a ^ 3".

Това завършва повторението на първото вписване на y, а ние повтаряме със следващия и др.


0 за отговор № 3

това, което се случва, е твоето първо for (String[] y: x)вашето преминаване през всеки елемент в х, тези, които се случват да бъдат от тип String [], масиви от низове и за всяка една от темите, която итера над елемента си от втората линия for (String z: y), и така y ще бъде: ("a", "a ^ 2", "a ^ 3"), ("1", "1", "1"), ("2", "4", "8"), , , и стойностите за z ще бъдат a, a ^ 2, a ^ 3, 1 ....


0 за отговор № 4

Бихте могли концептуално да мислите за 2D масив да бъдемасив от масиви. Всеки елемент на масив от ниво 1 съхранява позоваване на друг масив и всеки елемент от масив от ниво 2 е действителните данни, в този случай "int".