multidimensional arrays java 2d
Цей підручник з багатовимірних масивів на Java обговорює, як ініціалізувати, отримати доступ та надрукувати 2d та 3d масиви на Java із прикладами синтаксису та коду:
Наразі ми обговорювали основні поняття про одновимірні масиви. Ці масиви зберігають одну послідовність або список елементів одного типу даних.
Java також підтримує масиви з більш ніж одним виміром, і вони називаються багатовимірними масивами.
=> Перевірте ВСІ підручники Java тут.
Багатовимірні масиви Java влаштовані як масив масивів, тобто кожен елемент багатовимірного масиву є іншим масивом. Представлення елементів у рядках і стовпцях. Таким чином, ви можете отримати загальну кількість елементів у багатовимірному масиві, помноживши розмір рядка на розмір стовпця.
Отже, якщо у вас двовимірний масив 3 × 4, то загальна кількість елементів у цьому масиві = 3 × 4 = 12.
У цьому підручнику ми дослідимо багатовимірні масиви в Java. Спершу обговоримо двовимірні масиви, перш ніж переходити до тривимірних масивів.
Що ви дізнаєтесь:
Двовимірний масив
Найпростішим із багатовимірних масивів є двовимірний масив. Просте визначення 2D-масивів: 2D-масив - це масив одновимірних масивів.
У Java двовимірний масив зберігається у вигляді рядків і стовпців і представляється у вигляді матриці.
Загальне оголошення двовимірного масиву:
data_type () () array_name;
Ось,
data_type = тип даних елементів, які будуть зберігатися в масиві.
array_name = ім'я двовимірного масиву.
Ви можете створити 2D-масив, використовуючи новий наступним чином:
data_type () () array_name = new data_type(row_size)(column_size);
Ось,
row_size = кількість рядків, які буде містити масив.
column_size = кількість стовпців, які буде містити масив.
Отже, якщо у вас масив 3 × 3, це означає, що він матиме 3 рядки та 3 стовпці.
Макет цього масиву буде таким, як показано нижче.
Рядки / Стовпці | Стовпець1 | Стовпець2 | Стовпець3 |
---|---|---|---|
Рядок1 | (0,0) | (0,1) | (0,2) |
Рядок2 | (1,0) | (1,1) | (1,2) |
Рядок3 | (2,0) | (2.1) | (2.2) |
Як показано вище, кожен перетин рядка і стовпця зберігає елемент 2D-масиву. Отже, якщо ви хочете отримати доступ до першого елемента у 2d-масиві, тоді це задається як (0, 0).
Примітка що оскільки розмір масиву становить 3 × 3, ви можете мати 9 елементів у цьому масиві.
Цілочисельний масив із назвою «myarray» із 3 рядків і 2 стовпців можна оголосити, як показано нижче.
як написати тест на джуніт
int ()() myarray = new int(3)(2);
Після оголошення та створення масиву настав час ініціалізувати його значеннями.
Ініціалізуйте 2d-масив
Існують різні способи ініціалізації 2d-масиву значеннями. Перший метод - це традиційний метод присвоєння значень кожному елементу.
Загальний синтаксис для ініціалізації:
array_name(row_index)(column_index) = value;
Приклад:
int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1;
Наведені вище оператори ініціалізують всі елементи даного 2d-масиву.
Давайте помістимо це в програму і перевіримо результат.
public class Main { public static void main(String() args) { int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1; System.out.println('Array elements are:'); System.out.println(myarray(0)(0) + ' ' +myarray(0)(1)); System.out.println(myarray(1)(0) + ' ' +myarray(1)(1)); } }
Вихід:
Цей метод може бути корисним, коли розміри менше. У міру зростання розмірності масиву важко використовувати цей метод індивідуальної ініціалізації елементів.
Наступним методом ініціалізації 2d-масиву в Java є ініціалізація масиву лише під час оголошення.
Загальний синтаксис цього методу ініціалізації наведено нижче:
data_type()() array_name = {{val_r1c1,val_r1c2,...val_r1cn}, {val_r2c1, val_r2c2,...val_r2cn}, … {val_rnc1, val_rnc2,…val_rncn}};
Наприклад, якщо у вас є масив 2 × 3 типу int, тоді Ви можете ініціалізувати його за допомогою декларації як:
int ()() intArray = {{1, 2, 3}, {4, 5, 6}};
У наступному прикладі показано оголошення 2d-масиву з ініціалізацією.
public class Main { public static void main(String() args) { //2-d array initialised with values int()() intArray = { { 1, 2 }, { 3, 4 },{5,6}}; //print the array System.out.println('Initialized Two dimensional array:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 2; j++) { System.out.print(intArray (i)(j) + ' '); } System.out.println(); } } }
Вихід:
У наведеній вище програмі масив ініціалізується під час самої декларації, а потім відображаються значення.
Ви також можете ініціалізувати або призначити значення 2d-масиву, використовуючи цикл, як показано нижче.
int()() intArray = new int(3)(3); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i+1; } }
Наступна програма реалізує вищевказаний код.
public class Main { public static void main(String() args) { //declare an array of int int()() intArray = new int(3)(3); System.out.println('Array elements are:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i+1; //assign values to each array element System.out.print(intArray(i)(j) + ' '); //print each element } System.out.println(); } } }
Вихід:
Кожному елементу у згаданому 2d-масиві присвоюється значення «i + 1». Це змушує кожен елемент у рядку масиву містити одне і те ж значення.
Доступ та друк 2d масиву
Ви вже знаєте, що при ініціалізації 2d-масиву ви можете ініціалізувати окремі елементи масиву значенням. Це робиться за допомогою індексу рядків та індексу стовпців масиву для доступу до певного елемента.
Подібно до ініціалізації, ви також можете отримати доступ до значення окремого елемента та роздрукувати його користувачеві.
Загальним синтаксисом доступу до елемента масиву є:
data_typeval = array_name(row_index)(column_index);
Де array_name - це масив, до якого здійснюється доступ, а тип_даних такий самий, як і тип даних масиву.
Наступна програма показує, як здійснюється доступ та друк до окремого елемента.
public class Main { public static void main(String() args) { //two dimensional array definition int()() intArray = {{1,2},{4,8}}; //Access individual element of array intval = intArray(0)(1); //print the element System.out.println('Accessed array value = ' + val); System.out.println('Contents of Array:' ); //print individual elements of array System.out.println(intArray(0)(0) + ' ' + intArray(0)(1)); System.out.println(intArray(1)(0) + ' ' + intArray(1)(1)); } }
Вихід:
Таким чином ви можете легко отримати доступ та роздрукувати окремі елементи масиву, використовуючи індекси рядків і стовпців, укладені в квадратні (()) дужки.
Ви можете надрукувати весь масив відразу у табличному форматі, як показано вище (також званий матричною формою), використовуючи цикл for. Оскільки це двовимірний масив, для цього вам потрібно мати дві петлі. Один цикл для перебору рядків, тобто зовнішній цикл та внутрішній цикл для обходу стовпців.
У будь-який момент (поточна ітерація) конкретний елемент у масиві визначається як,
ім'я_масиву (i) (j);
Де 'i' - поточний рядок, а 'j' - поточний стовпець.
Наступна програма показує друк 2d-масиву за допомогою циклу 'for'.
public class Main { public static void main(String() args) { //two dimensional array definition int()() intArray = new int(3)(3); //printing the 2-d array System.out.println('The two-dimensional array:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i*j; //assign value to each array element System.out.print(intArray (i)(j) + ' '); } System.out.println(''); } } }
Вихід:
У наведеній вище програмі 2d-масив ініціалізується, а потім елементи друкуються за допомогою двох for циклів. Зовнішній використовується для відстеження рядків, а внутрішній цикл for - для стовпців.
Довжина масиву Java 2d
Двовимірний масив визначається як масив одновимірного масиву. Таким чином, коли вам потрібна довжина 2d-масиву, це не так просто, як у одновимірному масиві.
Властивість length для двовимірного масиву повертає кількість рядків у масиві. Кожен рядок - це одновимірний масив. Ви вже знаєте, що двовимірний масив складається з рядків і стовпців. Розмір стовпця може змінюватися для кожного рядка.
Отже, ви можете отримати розмір кожного рядка, перебираючи кількість рядків.
Наступна програма надає довжину масиву (кількість рядків), а також розмір кожного рядка.
public class Main { public static void main(String() args) { //initialize 2-d array int()() myArray = { { 1, 2, 3 }, { 4, 5 } }; System.out.println('length of array:' + myArray.length); //number of rows for(int i=0;i Вихід:

Визначений двовимірний масив має два рядки. Кожен рядок - це одновимірний масив. Перший 1D масив має 3 елементи (3 стовпці), тоді як другий рядок має 2 елементи.
Наступна програма Java показує використання властивості length для друку 2d-масиву.
public class Main { public static void main(String() args) { //two dimensional array definition int()() myarray = new int(3)(3); //printing the 2-d array System.out.println('The two-dimensional array:'); for (int i = 0; i Вихід:

Як уже зазначалося, зовнішній цикл представляє рядки, а внутрішній цикл for - стовпці.
Примітка: У умові завершення в обох циклах використовується властивість length, спочатку для ітерації через рядки, а потім через стовпці.
Багатовимірні масиви Java
Ми вже бачили двовимірні масиви. Java підтримує масиви з більш ніж двома розмірами.
Загальний синтаксис багатовимірного масиву такий:
data_type (d1)(d2)…(dn) array_name = new data_type(d1_size)(d2_size)…(dn_size);
Ось,
d1, d2… dn = розміри багатовимірного масиву
(d1_size) (d2_size) ... (dn_size) = відповідні розміри розмірів
data_type = тип даних елементів масиву
array_name = ім'я багатовимірного масиву
Як приклад ще одного багатовимірного масиву, відмінного від 2d масиву, давайте обговоримо деталі тривимірних (3d) масивів.
Тривимірні масиви в Java
Ми вже обговорювали, що масив ускладнюється із збільшенням їх розмірів. Тривимірні масиви є складними для багатовимірних масивів. Тривимірну можна визначити як масив двовимірних масивів.
Загальне визначення тривимірного масиву наведено нижче:
data_type () () () array_name = new data_type (d1)(d2)(d3);
Ось,
d1, d2, d3 = розміри розмірів
data_type = тип даних елементів масиву
array_name = ім'я тривимірного масиву
Приклад визначення 3D-масиву:
int () () () intArray = new int(2)(3)(4);
Вищевикладене визначення тривимірного масиву можна інтерпретувати як таке, що має 2 таблиці або масиви, 3 рядки та 4 стовпці, що становить до 2x3x4 = 24 елементів.
Це означає, що в 3D-масиві три виміри інтерпретуються як:
- Кількість таблиць / масивів: Перший вимір вказує, скільки таблиць або масивів буде мати тривимірний масив.
- Кількість рядків: Другий вимір означає загальну кількість рядків масиву.
- Кількість стовпців: Третій вимір вказує загальну кількість стовпців у 3D-масиві.
Ініціалізуйте 3d-масив
Підходи, що використовуються для ініціалізації тривимірного масиву, такі ж, як підходи для ініціалізації двовимірних масивів.
Ви можете або ініціалізувати масив, присвоївши значення окремим елементам масиву, або ініціалізувати масив під час оголошення.
У прикладі нижче показано ініціалізацію 3d-масиву під час оголошення.
public class Main { public static void main(String() args) { //initialize 3-d array int()()() intArray = { { { 1, 2, 3}, { 4, 5, 6 } , { 7, 8, 9 } } }; System.out.println ('3-d array is given below :'); //print the elements of array for (int i = 0; i <1; i++) for (int j = 0; j < 3; j++) for (int z = 0; z < 3; z++) System.out.println ('intArray (' + i + ')(' + j + ')(' + z + ') = ' + intArray (i)(j)(z)); } }
Вихід:

Після ініціалізації 3d-масиву під час оголошення ми отримали доступ до окремих елементів масиву та надрукували їх.
Доступ та друк 3d-масиву
Знову ж, друк та доступ до елементів масиву у тривимірному масиві подібний до того, що є у двовимірних масивах.
Наведена нижче програма використовує для циклів доступ до елементів масиву та їх друк на консолі.
public class Main { public static void main(String() args) { //initialize 3-d array int()()() myArray = { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 1, 4, 9 }, { 16, 25, 36 } }, { { 1, 8, 27 }, { 64, 125, 216 } } }; System.out.println('3x2x3 array is given below:'); //print the 3-d array for (int i = 0; i <3; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 3; k++) { System.out.print(myArray(i)(j)(k) + ' '); } System.out.println(); } System.out.println(); } } }
Вихід:

Вищевказана програма відображає табличне представлення тривимірного масиву. Як показано, це масив 3x2x3, що означає, що він має 3 таблиці, 2 рядки та 3 стовпці і, отже, 18 елементів.
Вже згадувалося, що розмір стовпця може змінюватись у багатовимірному масиві. Наведений нижче приклад демонструє тривимірний масив із різними розмірами стовпців.
Ця програма також використовує вдосконалений цикл for для обходу масиву та відображення його елементів.
public class Main { public static void main(String() args) { //initialize 3-d array int()()() intArray = { {{10, 20, 30},{20, 40, 60}}, { {10, 30,50,70},{50},{80, 90}} }; System.out.println('Multidimensional Array (3-d) is as follows:'); // use for..each loop to iterate through elements of 3d array for (int()() array_2D: intArray) { for (int() array_1D: array_2D) { for(intelem: array_1D) { System.out.print(elem + ' '); } System.out.println(); } System.out.println(); } } }
Вихід:

Вхідним масивом, що використовується, є тривимірний масив із різною довжиною стовпців. Удосконалений для кожного циклу, що використовується для кожного виміру, відображає вміст масиву у табличному форматі.
Часті запитання
Q # 1) Що ви маєте на увазі під двовимірним масивом?
Відповідь: Двовимірний масив називається масивом масивів і зазвичай організований у вигляді матриць, що складаються з рядків і стовпців. Двовимірний масив знаходить своє використання здебільшого в реляційних базах даних або подібних структурах даних.
Q # 2) Що таке одновимірний масив у Java?
Відповідь: Одновимірний масив у Java - це масив, що має лише один індекс. Це найпростіша форма масивів на Java.
Q # 3) Яка різниця між одновимірним масивом та двовимірним масивом?
Відповідь: Одновимірний масив зберігає одну послідовність елементів і має лише один індекс. Двовимірний масив зберігає масив масивів елементів і використовує два індекси для доступу до своїх елементів.
Q # 4) Що означає бути двовимірним?
Відповідь: Двовимірність означає лише два виміри. В геометричному світі об’єкти, що мають лише висоту та ширину, є двовимірними або двовимірними об’єктами. Ці об'єкти не мають товщини або глибини.
Трикутник, прямокутники тощо - це 2D-об’єкти. З точки зору програмного забезпечення, двовимірність все ще означає наявність двох вимірів, і ми зазвичай визначаємо структури даних, такі як масиви, які можуть мати 1, 2 або більше вимірів.
Q # 5) Який із них стоїть першим у масиві - рядки чи стовпці?
Відповідь: Двовимірні масиви представлені у вигляді матриць, а матриці зазвичай записуються через рядки x стовпці. Наприклад, матриця розміром 2 × 3 матиме 2 рядки та 3 стовпці. Отже, для 2D-масиву також рядки стоять першими, а стовпці - наступними.
Висновок
Мова йшла про багатовимірні масиви на Java. Ми обговорили всі аспекти двовимірних масивів, а також масиву, що має більше двох вимірів.
Зазвичай їх називають масивом або масивами, оскільки у випадку багатовимірних масивів кожен елемент є іншим масивом. Таким чином, можна сказати, що масив містить інший масив або просто масив масивів.
У наших майбутніх підручниках ми вивчимо більше про масиви, а потім перейдемо до інших колекцій.
=> Тут слідкуйте за простими навчальними серіями Java.
Рекомендована література
- Java Array - Як надрукувати елементи масиву в Java?
- Загальний масив Java - Як імітувати загальні масиви в Java?
- Багатовимірні масиви та нерівні масиви в C #
- Вступ до масивів Java та пов'язані з ними поняття
- Багатовимірні масиви в C ++
- Java-типи даних, цикли, масиви, комутатори та твердження
- Java Array - Оголошення, створення та ініціалізація масиву в Java
- Підручник з довжини масиву Java із прикладами коду