2016-06-26 2 views
-4

простой 2d массив 4х6Отображение элементов 2d массива

public class arraytest { 

public static void main(String[] args) { 
int array[][] = new int[4][6]; 
int row = array.length; 
int col = array[0].length; 

System.out.println("Row length " + row); 
for (int i = 0; i < row; i++) 
    for (int j = 0; j < col; j++) { 
    array[1][1] = 5; 
    System.out.println("Array elements " + array[i][j]); 
    } 
} 

} 

как делает массив [1] [1] = 5 функций: Выход следующим образом:

Row length 4 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 5 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 

как же "массив элементов 5" находится в 8-й позиции, я не мог понять логику. > может кто-нибудь объяснить логику.

ответ

1

При работе с массивами, вы должны знать, что первый элемент всегда хранится в 0. Я предполагаю, что, набрав массив [1] [1], вы хотели сохранить значение 5 в первой строке, первом столбце. Однако [1] [1] фактически ссылается на второй столбец второй строки по указанной выше причине.

Поэтому ваш массив выглядит следующим образом:

0 0 0 0 0 0 
0 5 0 0 0 0 
0 0 0 0 0 0 
0 0 0 0 0 0 

Наконец, потому что ваши для петель имеют столбцы, как вложенный цикл, он напечатает каждый столбец в первой строке, прежде чем перейти ко второму ряду. Таким образом, первая строка выводит шесть 0, а вторая строка выводит другую 0, прежде чем вы, наконец, нажмете значение, которое вы установили в качестве восьмого выхода.

0

массив [1] [1] представляет собой пересечение второй строки и второй колонки. Поэтому цикл сначала печатает первую строку (которая имеет 6 элементов), а во второй строке печатает массив [1] [0] и массив [1] [1]. Итак, массив [1] [1] находится на 8-й позиции.

0

Вы устанавливаете элемент 1,1 до 5 ... остальные будут держать то же значение ...

Row length 4 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 0 
Array elements 5 <--- here is he!! 
Array elements 0 
Array elements ... 
0

Я думаю, что вы забыли, что индекс массивов начинается с !

Это означает 4 по 6 многомерный массив выглядит следующим образом:

[0] [0] [0] [1] [0] [2] [0] [3] [0 ] [4] [0] [5] [1] [0] [1] [1] [1] [2] [1] [3] [1] [4] [1] [5] [2 ] [0] [2] [1] [2] [2] [2] [3] [2] [4] [2] [5] [3] [0] [3] [1] [3] [2] [3] [3] [3] [4] [3] [5]

И, как вы можете видеть, один [1] [1] находится в положении восьмерки.

При объявлении многомерный массив как этот массив [4] [6] оно идет от 0 до 3, а в тех строках, от 0 до 5, так как индекс массива начинается с 0, а не на 1.

0

Если вы новичок в Java, массивы начинаются с индекса 0; точно так же, как первый символ строки равен 0. Рассмотрим длины или конечный индекс массива или String as, n-1. Эта индексированная логика 0 также будет применяться к столбцам/строкам 2D-массива.

0

См Вывод этого примера, ваше сомнение будет ясно:

public class arraytest { 

public static void main(String[] args) { 
int array[][] = new int[4][6]; 
int row = array.length; 
int col = array[0].length; 

System.out.println("Row length " + row); 
System.out.println("Col length " + col); 
for (int i = 0; i < row; i++) 
    for (int j = 0; j < col; j++) { 
    array[1][1] = 5; 
    System.out.println("Array elements at row "+i+" and column "+j+" is "+ array[i][j]); 
    } 
} 

} 

Выход:

Row length 4                                          
Col length 6                                          
Array elements at row 0 and column 0 is 0                                  
Array elements at row 0 and column 1 is 0                                  
Array elements at row 0 and column 2 is 0                                  
Array elements at row 0 and column 3 is 0                                  
Array elements at row 0 and column 4 is 0                                  
Array elements at row 0 and column 5 is 0                                  
Array elements at row 1 and column 0 is 0                                  
Array elements at row 1 and column 1 is 5                                  
Array elements at row 1 and column 2 is 0                                  
Array elements at row 1 and column 3 is 0                                  
Array elements at row 1 and column 4 is 0                                  
Array elements at row 1 and column 5 is 0                                  
Array elements at row 2 and column 0 is 0                                  
Array elements at row 2 and column 1 is 0                                  
Array elements at row 2 and column 2 is 0                                  
Array elements at row 2 and column 3 is 0                                  
Array elements at row 2 and column 4 is 0                                  
Array elements at row 2 and column 5 is 0                                  
Array elements at row 3 and column 0 is 0                                  
Array elements at row 3 and column 1 is 0                                  
Array elements at row 3 and column 2 is 0                                  
Array elements at row 3 and column 3 is 0                                  
Array elements at row 3 and column 4 is 0                                  
Array elements at row 3 and column 5 is 0 
Смежные вопросы