Основи масиву в Java Багатовимірні масиви можна визначити простими словами як масив масивів. Дані в багатовимірних масивах зберігаються в табличній формі (в порядку старшого рядка).
Синтаксис:
тип даних [1-й вимір][2-й вимір][]..[N-й вимір] ім'я_масиву = новий тип_данних [розмір1][розмір2]…[розмірN];
де:
- тип даних : Тип даних, які будуть зберігатися в масиві. Наприклад: int, char тощо.
- вимір : Розмір створеного масиву. Наприклад: 1D, 2D тощо.
- ім'я_масиву : ім'я масиву
- розмір1, розмір2, …, розмірN : Розміри габаритів відповідно.
приклади:
Two dimensional array: int[][] twoD_arr = new int[10][20]; Three dimensional array: int[][][] threeD_arr = new int[10][20][30];>
Розмір багатовимірних масивів : загальну кількість елементів, які можна зберігати в багатовимірному масиві, можна обчислити шляхом множення розміру всіх розмірів.
Наприклад: Масив int[][] x = новий int[10][20] може зберігати загалом (10*20) = 200 елементів. Аналогічно, масив int[][][] x = new int[5][10][20] може зберігати загалом (5*10*20) = 1000 елементів.
Застосування багатовимірного масиву
● Для зберігання даних у табличній формі використовуються багатовимірні масиви. Наприклад, зберігання номерів і оцінок студента можна легко здійснити за допомогою багатовимірних масивів. Іншим поширеним використанням є зберігання зображень у тривимірних масивах.
фірма проти компанії
● У питаннях динамічного програмування використовуються багатовимірні масиви, які використовуються для представлення станів проблеми.
● Окрім цього, вони також мають застосування в багатьох стандартних алгоритмічних задачах, таких як: множення матриць, представлення матриці суміжності в графах, проблеми пошуку в сітці
Двовимірний масив (2D-масив)
Двовимірний масив є найпростішою формою багатовимірного масиву. Для легшого розуміння двовимірний масив можна розглядати як масив одновимірного масиву.
Непрямий спосіб декларування:
- Оголошення – Синтаксис:
data_type[][] array_name = new data_type[x][y]; For example: int[][] arr = new int[10][20];>
- Ініціалізація – Синтаксис:
array_name[row_index][column_index] = value; For example: arr[0][0] = 1;>
приклад: 1
Java
import> java.io.*;> public> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][] arr => new> int> [> 10> ][> 20> ];> > arr[> 0> ][> 0> ] => 1> ;> > System.out.println(> 'arr[0][0] = '> + arr[> 0> ][> 0> ]);> > }> }> |
>
>Вихід
arr[0][0] = 1>
Приклад: Реалізація 2D-масиву зі значеннями за замовчуванням із матрицею 4*4
Java
public> class> TwoDArray {> > public> static> void> main(String[] args) {> > int> rows => 4> ;> > int> columns => 4> ;> > int> [][] array => new> int> [rows][columns];> > int> value => 1> ;> > for> (> int> i => 0> ; i for (int j = 0; j array[i][j] = value; value++; } } System.out.println('The 2D array is: '); for (int i = 0; i for (int j = 0; j System.out.print(array[i][j] + ' '); } System.out.println(); } } }> |
>
>Вихід
The 2D array is: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16>
Пояснення:
- Кількість рядків і стовпців задається за допомогою змінних rows і columns. Двовимірний масив створюється за допомогою оператора new, який виділяє пам’ять для масиву. Розмір масиву задається рядками та стовпцями.
Прямий спосіб декларування: Синтаксис:
data_type[][] array_name = { {valueR1C1, valueR1C2, ....}, {valueR2C1, valueR2C2, ....} }; For example: int[][] arr = {{1, 2}, {3, 4}};>
приклад:
Java
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][] arr = { {> 1> ,> 2> }, {> 3> ,> 4> } };> > for> (> int> i => 0> ; i <> 2> ; i++)> > for> (> int> j => 0> ; j <> 2> ; j++)> > System.out.println(> 'arr['> + i +> ']['> + j +> '] = '> > + arr[i][j]);> > }> }> |
>
>Вихід
arr[0][0] = 1 arr[0][1] = 2 arr[1][0] = 3 arr[1][1] = 4>
Доступ до елементів двовимірних масивів
Елементи в двовимірних масивах зазвичай називаються x[i][j] де «i» — номер рядка, а «j» — номер стовпця.
Синтаксис:
x[row_index][column_index]>
Наприклад:
int[][] arr = new int[10][20]; arr[0][0] = 1;>
Наведений вище приклад представляє елемент, присутній у першому рядку та першому стовпці. Примітка : у масивах, якщо розмір масиву N. Його індекс буде від 0 до N-1. Тому для row_index 2 фактичний номер рядка дорівнює 2+1 = 3. приклад:
Java
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][] arr = { {> 1> ,> 2> }, {> 3> ,> 4> } };> > System.out.println(> 'arr[0][0] = '> + arr[> 0> ][> 0> ]);> > }> }> |
>
>Вихід
arr[0][0] = 1>
Представлення 2D масиву в табличному форматі:
Двовимірний масив можна розглядати як таблицю з рядками «x» і стовпцями «y», де номер рядка коливається від 0 до (x-1), а номер стовпця — від 0 до (y-1). Нижче показано двовимірний масив «x» із 3 рядками та 3 стовпцями:
Роздрукувати 2D-масив у табличному форматі:
Щоб вивести всі елементи двовимірного масиву, використовуйте вкладені цикли for. Для цього потрібні два цикли for: один для обходу рядків, а інший для обходу стовпців.
приклад:
Java
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][] arr = { {> 1> ,> 2> }, {> 3> ,> 4> } };> > for> (> int> i => 0> ; i <> 2> ; i++) {> > for> (> int> j => 0> ; j <> 2> ; j++) {> > System.out.print(arr[i][j] +> ' '> );> > }> > System.out.println();> > }> > }> }> |
>
>Вихід
1 2 3 4>
Приклад: Реалізація двовимірного масиву з введенням користувача
Java
import> java.util.Scanner;> public> class> Main {> > public> static> void> main(String[] args)> > {> > Scanner scan => new> Scanner(System.in);> > System.out.print(> 'Enter number of rows: '> );> > int> rows = scan.nextInt();> > System.out.print(> 'Enter number of columns: '> );> > int> columns = scan.nextInt();> > int> [][] multidimensionalArray=> new> int> [rows][columns];> > // Now you can use the array like a regular> > // 2-dimensional array> > for> (> int> i => 0> ; i for (int j = 0; j multidimensionalArray[i][j]= (i + 1) * (j + 1); } } for (int i = 0; i for (int j = 0; j System.out.print(multidimensionalArray[i][j]+ ' '); } System.out.println(); } scan.close(); } }> |
>
>
Вихід
Enter number of rows: 3 Enter number of columns: 3 1 2 3 2 4 6 3 6 9>
- Цей код пропонує користувачеві ввести кількість рядків і стовпців для 2-вимірного масиву. Клас Scanner використовується для читання введених користувачем даних. Потім він створює двовимірний масив цілих чисел із заданою кількістю рядків і стовпців і призначає кожному елементу масиву i*j.
- Якщо ви хочете створити багатовимірний масив із більш ніж двома вимірами, ви можете використати той самий підхід до створення масиву масивів. Наприклад, щоб створити 3-вимірний масив, ви можете створити масив 2-вимірних масивів.
Тривимірний масив (3D-масив)
Тривимірний масив є складною формою багатовимірного масиву. Для легшого розуміння тривимірний масив можна розглядати як масив двовимірного масиву.
Непрямий спосіб декларування:
кероване машинне навчання
- Оголошення – Синтаксис:
data_type[][][] array_name = new data_type[x][y][z]; For example: int[][][] arr = new int[10][20][30];>
- Ініціалізація – Синтаксис:
array_name[array_index][row_index][column_index] = value; For example: arr[0][0][0] = 1;>
приклад:
Java
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][][] arr => new> int> [> 10> ][> 20> ][> 30> ];> > arr[> 0> ][> 0> ][> 0> ] => 1> ;> > System.out.println(> 'arr[0][0][0] = '> + arr[> 0> ][> 0> ][> 0> ]);> > }> }> |
>
>Вихід
arr[0][0][0] = 1>
Прямий спосіб декларування: Синтаксис:
data_type[][][] array_name = { { {valueA1R1C1, valueA1R1C2, ....}, {valueA1R2C1, valueA1R2C2, ....} }, { {valueA2R1C1, valueA2R1C2, ....}, {valueA2R2C1, valueA2R2C2, ....} } }; For example: int[][][] arr = { {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}} };>
приклад:
Java
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][][] arr = { { {> 1> ,> 2> }, {> 3> ,> 4> } }, { {> 5> ,> 6> }, {> 7> ,> 8> } } };> > for> (> int> i => 0> ; i <> 2> ; i++)> > for> (> int> j => 0> ; j <> 2> ; j++)> > for> (> int> z => 0> ; z <> 2> ; z++)> > System.out.println(> 'arr['> + i> > +> ']['> > + j +> ']['> > + z +> '] = '> > + arr[i][j][z]);> > }> }> |
>
>Вихід
arr[0][0][0] = 1 arr[0][0][1] = 2 arr[0][1][0] = 3 arr[0][1][1] = 4 arr[1][0][0] = 5 arr[1][0][1] = 6 arr[1][1][0] = 7 arr[1][1][1] = 8>
Доступ до елементів тривимірних масивів
Елементи в тривимірних масивах зазвичай називаються x[i][j][k] де «i» — номер масиву, «j» — номер рядка, а «k» — номер стовпця.
Синтаксис:
x[array_index][row_index][column_index]>
Наприклад:
int[][][] arr = new int[10][20][30]; arr[0][0][0] = 1;>
Наведений вище приклад представляє елемент, присутній у першому рядку та першому стовпці першого масиву в заявленому 3D-масиві.
Примітка : у масивах, якщо розмір масиву N. Його індекс буде від 0 до N-1. Тому для row_index 2 фактичний номер рядка дорівнює 2+1 = 3.
приклад:
Java
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][][] arr = { { {> 1> ,> 2> }, {> 3> ,> 4> } }, { {> 5> ,> 6> }, {> 7> ,> 8> } } };> > System.out.println(> 'arr[0][0][0] = '> + arr[> 0> ][> 0> ][> 0> ]);> > }> }> |
>
>Вихід
arr[0][0][0] = 1>
Представлення тривимірного масиву в табличному форматі:
Тривимірний масив можна розглядати як таблицю масивів із рядками «x» і стовпцями «y», де номер рядка коливається від 0 до (x-1), а номер стовпця — від 0 до (y-1). Нижче показано тривимірний масив із 3 масивами, що містять 3 рядки та 3 стовпці:
Роздрукуйте 3D-масив у табличному форматі:
Щоб вивести всі елементи тривимірного масиву, використовуйте вкладені цикли for. Для цього потрібні три цикли for: один для обходу масивів, другий для обходу рядків і інший для обходу стовпців.
приклад:
Java
c#
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][][] arr = { { {> 1> ,> 2> }, {> 3> ,> 4> } },> > { {> 5> ,> 6> }, {> 7> ,> 8> } } };> > for> (> int> i => 0> ; i <> 2> ; i++) {> > for> (> int> j => 0> ; j <> 2> ; j++) {> > for> (> int> k => 0> ; k <> 2> ; k++) {> > System.out.print(arr[i][j][k] +> ' '> );> > }> > System.out.println();> > }> > System.out.println();> > }> > }> }> |
>
>Вихід
1 2 3 4 5 6 7 8>
Вставлення багатовимірного масиву під час виконання:
Ця тема примусово вводить визначені користувачем дані в багатовимірний масив під час виконання. Він зосереджений на тому, що користувач спочатку вводить усі вхідні дані в програму під час виконання, а після введення всіх введених даних програма видає вихідні дані щодо кожного вхідного даних відповідно. Це корисно, коли користувач бажає спочатку ввести вхідні дані для кількох тестів із кількома різними значеннями, а після того, як усе це зроблено, програма почне надавати вихідні дані. Для прикладу давайте знайдемо загальну кількість парних і непарних чисел у вхідному масиві. Тут ми будемо використовувати концепцію 2-вимірного масиву.
Ось кілька моментів, які пояснюють використання різних елементів у майбутньому коді:
- Ціле число рядка розглядається як кількість тестів, а значення стовпця вважаються значеннями в кожному тесті.
- Один цикл for() використовується для оновлення номера тестового прикладу, а інший цикл for() використовується для отримання відповідних значень масиву.
- Після завершення всіх вводів знову використовуються два цикли for() таким же чином для виконання програми відповідно до вказаної умови.
- У першому рядку вводиться загальна кількість тестових випадків.
- У другому рядку показано загальну кількість значень першого масиву.
- Третій рядок містить значення масиву тощо.
Реалізація:
Java
import> java.io.*;> import> java.util.Scanner;> class> GFGTestCase {> > public> static> void> main(String[] args)> > {> > // Scanner class to take> > // values from console> > Scanner scanner => new> Scanner(System.in);> > // totalTestCases = total> > // number of TestCases> > // eachTestCaseValues => > // values in each TestCase as> > // an Array values> > int> totalTestCases, eachTestCaseValues;> > // takes total number of> > // TestCases as integer number> > totalTestCases = scanner.nextInt();> > // An array is formed as row> > // values for total testCases> > int> [][] arrayMain => new> int> [totalTestCases][];> > // for loop to take input of> > // values in each TestCase> > for> (> int> i => 0> ; i eachTestCaseValues = scanner.nextInt(); arrayMain[i] = new int[eachTestCaseValues]; for (int j = 0; j arrayMain[i][j] = scanner.nextInt(); } } // All input entry is done. // Start executing output // according to condition provided for (int i = 0; i // Initialize total number of // even & odd numbers to zero int nEvenNumbers = 0, nOddNumbers = 0; // prints TestCase number with // total number of its arguments System.out.println('TestCase ' + i + ' with ' + arrayMain[i].length + ' values:'); for (int j = 0; j System.out.print(arrayMain[i][j] + ' '); // even & odd counter updated as // eligible number is found if (arrayMain[i][j] % 2 == 0) { nEvenNumbers++; } else { nOddNumbers++; } } System.out.println(); // Prints total numbers of // even & odd System.out.println( 'Total Even numbers: ' + nEvenNumbers + ', Total Odd numbers: ' + nOddNumbers); } } } // This code is contributed by Udayan Kamble.> |
>
>
Вихід:
Input: 2 2 1 2 3 1 2 3 Output: TestCase 0 with 2 values: 1 2 Total Even numbers: 1, Total Odd numbers: 1 TestCase 1 with 3 values: 1 2 3 Total Even numbers: 1, Total Odd numbers: 2 Input: 3 8 1 2 3 4 5 11 55 66 5 100 101 55 35 108 6 3 80 11 2 1 5 Output: TestCase 0 with 8 values: 1 2 3 4 5 11 55 66 Total Even numbers: 3, Total Odd numbers: 5 TestCase 1 with 5 values: 100 101 55 35 108 Total Even numbers: 2, Total Odd numbers: 3 TestCase 2 with 6 values: 3 80 11 2 1 5 Total Even numbers: 2, Total Odd numbers: 4>