3.1. багатовимірні масиви
Насправді справжніх багатовимірних масивів в Java не існує. Зате є масиви масивів, які поводяться подібно багатовимірним масивам за винятком декількох незначних відмінностей. Наведений нижче код створює традиційну матрицю з десяти елементів типу double, кожен з яких инициализируется нулем. Внутрішня реалізація цієї матриці - масив масивів double.
double matrix [] [] = new double [5] [2];
Наступний фрагмент коду ініціалізує така ж кількість пам'яті, але пам'ять під другу розмірність відводиться вручну. Це зроблено для того, щоб наочно показати, що матриця насправді являє собою вкладені масиви.
double matrix [] [] = new double [5] [];
matrix [0] = new double [2];
matrix [l] = new double [2];
matrix [2] = new double [2];
matrix [3] = <0,1>;
matrix [4] = <2,3>;
У наступному прикладі створюється матриця розміром 4 на 4 з елементами типу double, причому її діагональні елементи (ті, для яких х == у) заповнюються одиницями, а всі інші елементи залишаються рівними нулю.
class Matrix <
public static void main (String args []) <
double m [] []; m = new double [4] [4];
m [0] [0] = l;
m [l] [l] = l;
m [2] [2] = l;
m [3] [3] = l;
System.out.println (m [0] [0] + "" + m [0] [l] + "" + m [0] [2] + "" + m [0] [3]);
System.out.println (m [1] [0] + "" + m [l] [l] + "" + m [l] [2] + "" + m [l] [3]);
System.out.println (m [2] [0] + "" + m [2] [l] + "" + m [2] [2] + "" + m [2] [3]);
System.out.println (m [3] [0] + "" + m [3] [l] + "" + m [3] [2] + "" + m [3] [3]);
>
>
Запустивши цю програму, ви отримаєте наступний результат:
1000
0100
0010
0001
Зверніть увагу - якщо ви хочете, щоб значення елемента було нульовим, вам не потрібно його форматувати, це робиться автоматично. Для завдання початкових значень масивів існує спеціальна форма ініціалізатор, придатна і в багатовимірному випадку. У про1рамме, наведеної нижче, створюється матриця, кожен елемент якої містить твір номера рядка на номер стовпчика. Зверніть увагу на той факт, що всередині ініціалізатор масиву можна використовувати не тільки літерали, а й вираження.
Запустивши цю програму, ви отримаєте наступний результат: