logo

Різні способи оголошення та ініціалізації 2-D масиву в Java

Багатовимірний масив. Найбільш часто використовуваними багатовимірними масивами є 2-D і 3-D масиви. Ми можемо сказати, що будь-який багатовимірний масив в основному є масивом масивів. Дуже поширеним прикладом двовимірного масиву є шахова дошка. Шахова дошка — це сітка, що містить 64 квадрати 1×1. Подібним чином можна візуалізувати двовимірний масив. У двовимірному масиві кожен елемент пов’язаний з номером рядка та номером стовпця. Доступ до будь-якого елемента двовимірного масиву подібний до доступу до запису файлу Excel, використовуючи як номер рядка, так і номер стовпця. Двовимірні масиви корисні під час реалізації гри в хрестики-нулики, шахи або навіть для зберігання пікселів зображення.



Оголошення 2-D масиву в Java:

Будь-який двовимірний масив можна оголосити наступним чином:

Синтаксис:

cpld проти FPGA

data_type array_name [][]; (АБО) data_type[][] array_name;



    data_type: Оскільки Java є мовою зі статичними типами (тобто вона очікує, що її змінні будуть оголошені, перш ніж їм можна буде присвоїти значення). Отже, визначення типу даних визначає тип елементів, які він прийматиме. напр. щоб зберігати лише цілі значення, тип даних буде оголошено як int. array_name: це ім’я, яке дається 2-D масиву. напр. предмети, учні, фрукти, відділ тощо.

Примітка: Ми можемо написати [ ][ ] після data_type або ми можемо написати [ ][ ] після array_name під час оголошення 2D-масиву.

Java






// java program showing declaration of arrays> import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> > >int>[][] integer2DArray;>// 2D integer array> >String[][] string2DArray;>// 2D String array> >double>[][] double2DArray;>// 2D double array> >boolean>[][] boolean2DArray;>// 2D boolean array> >float>[][] float2DArray;>// 2D float array> >double>[][] double2DArray;>// 2D double array> >}> }>

>

>

Різні підходи для ініціалізації 2-D масиву в Java:

data_type[][] array_Name = новий тип_даних[кількість_рядків][кількість_стовпців];

Загальна кількість елементів у будь-якому 2D-масиві дорівнюватиме (кількість_рядків) * (кількість_стовпців).

    no_of_rows: кількість рядків у масиві. напр. no_of_rows = 3, тоді масив матиме три рядки. no_of_columns: кількість стовпців у масиві. напр. no_of_columns = 4, тоді масив матиме чотири стовпці.

Наведений вище синтаксис ініціалізації масиву призначатиме значення за замовчуванням усім елементам масиву відповідно до вказаного типу даних.
Нижче наведено реалізацію різних підходів для ініціалізації 2D-масивів:

Підхід 1:

Java




// java program to initialize a 2D array> import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >// Declaration along with initialization> >// 2D integer array with 5 rows and 3 columns> >// integer array elements are initialized with 0> >int>[][] integer2DArray =>new> int>[>5>][>3>];> >System.out.println(> >'Default value of int array element: '> >+ integer2DArray[>0>][>0>]);> > >// 2D String array with 4 rows and 4 columns> >// String array elements are initialized with null> >String[][] string2DArray =>new> String[>4>][>4>];> >System.out.println(> >'Default value of String array element: '> >+ string2DArray[>0>][>0>]);> > >// 2D boolean array with 3 rows and 5 columns> >// boolean array elements are initialized with false> >boolean>[][] boolean2DArray =>new> boolean>[>4>][>4>];> >System.out.println(> >'Default value of boolean array element: '> >+ boolean2DArray[>0>][>0>]);> > >// 2D char array with 10 rows and 10 columns> >// char array elements are initialized with> >// 'u0000'(null character)> >char>[][] char2DArray =>new> char>[>10>][>10>];> >System.out.println(> >'Default value of char array element: '> >+ char2DArray[>0>][>0>]);> > >// First declaration and then initialization> >int>[][] arr;>// declaration> > >// System.out.println('arr[0][0]: '+ arr[0][0]);> >// The above line will throw an error, as we have> >// only declared the 2D array, but not initialized> >// it.> >arr =>new> int>[>5>][>3>];>// initialization> >System.out.println(>'arr[0][0]: '> + arr[>0>][>0>]);> >}> }>

>

>

Примітка: Коли ви ініціалізуєте 2D-масив, ви завжди повинні вказувати перший вимір (кількість рядків), але надання другого виміру (кількість стовпців) можна опустити.

У наведеному нижче фрагменті коду ми не вказали кількість стовпців. Однак компілятор Java досить розумний, щоб маніпулювати розміром, перевіряючи кількість елементів усередині стовпців.

Java




як ввести макет абстрактного класу

import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >// The line below will throw an error, as the first> >// dimension(no. of rows) is not specified> >int>[][] arr =>new> int>[][>3>];> > >// The line below will execute without any error, as> >// the first dimension(no. of rows) is specified> >int>[][] arr =>new> int>[>2>][];> >}> }>

>

>

Ви можете отримати доступ до будь-якого елемента двовимірного масиву за допомогою номерів рядків і номерів стовпців.

Підхід 2:

У наведеному нижче фрагменті коду ми не вказали кількість рядків і стовпців. Однак компілятор Java досить розумний, щоб маніпулювати розміром, перевіряючи кількість елементів усередині рядків і стовпців.

Java




import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >String[][] subjects = {> >{>'Data Structures & Algorithms'>,> >'Programming & Logic'>,>'Software Engineering'>,> >'Theory of Computation'> },>// row 1> > >{>'Thermodynamics'>,>'Metallurgy'>,> >'Machine Drawing'>,> >'Fluid Mechanics'> },>// row2> > >{>'Signals and Systems'>,>'Digital Electronics'>,> >'Power Electronics'> }>// row3> >};> > >System.out.println(> >'Fundamental Subject in Computer Engineering: '> >+ subjects[>0>][>0>]);> >System.out.println(> >'Fundamental Subject in Mechanical Engineering: '> >+ subjects[>1>][>3>]);> >System.out.println(> >'Fundamental Subject in Electronics Engineering: '> >+ subjects[>2>][>1>]);> >}> }>

>

sql порядок за датою

>

Вихід

Fundamental Subject in Computer Engineering: Data Structures & Algorithms Fundamental Subject in Mechanical Engineering: Fluid Mechanics Fundamental Subject in Electronics Engineering: Digital Electronics>

Підхід 3:

Крім того, ми можемо ініціалізувати кожен елемент масиву окремо. Подивіться на фрагмент коду нижче:

Java




import> java.io.*;> import> java.util.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >int>[][] scores =>new> int>[>2>][>2>];> >// Initializing array element at position[0][0],> >// i.e. 0th row and 0th column> >scores[>0>][>0>] =>15>;> >// Initializing array element at position[0][1],> >// i.e. 0th row and 1st column> >scores[>0>][>1>] =>23>;> >// Initializing array element at position[1][0],> >// i.e. 1st row and 0th column> >scores[>1>][>0>] =>30>;> >// Initializing array element at position[1][1],> >// i.e. 1st row and 1st column> >scores[>1>][>1>] =>21>;> > >// printing the array elements individually> >System.out.println(>'scores[0][0] = '> >+ scores[>0>][>0>]);> >System.out.println(>'scores[0][1] = '> >+ scores[>0>][>1>]);> >System.out.println(>'scores[1][0] = '> >+ scores[>1>][>0>]);> >System.out.println(>'scores[1][1] = '> >+ scores[>1>][>1>]);> >// printing 2D array using Arrays.deepToString() method> >System.out.println(> >'Printing 2D array using Arrays.deepToString() method: '>);> >System.out.println(Arrays.deepToString(scores));> >}> }>

>

>

Вихід

scores[0][0] = 15 scores[0][1] = 23 scores[1][0] = 30 scores[1][1] = 21 Printing 2D array using Arrays.deepToString() method: [[15, 23], [30, 21]]>

Підхід 4

Використання описаного вище підходу для ініціалізації масиву було б виснажливим завданням, якщо розмір 2D-масиву занадто великий. Ефективним способом є використання циклу for для ініціалізації елементів масиву у випадку великого двовимірного масиву.

Java




import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >int> rows =>80>, columns =>5>;> >int>[][] marks =>new> int>[rows][columns];> > >// initializing the array elements using for loop> >for> (>int> i =>0>; i for (int j = 0; j marks[i][j] = i + j; } } // printing the first three rows of marks array System.out.println('First three rows are: '); for (int i = 0; i <3; i++) { for (int j = 0; j System.out.printf(marks[i][j] + ' '); } System.out.println(); } } }>

>

>

Вихід

First three rows are: 0 1 2 3 4 1 2 3 4 5 2 3 4 5 6>

Примітка: Ми можемо використовувати обр. функція length для визначення розміру рядків (1-й вимір) і функція arr[0].length для визначення розміру стовпців (2-й вимір).

Підхід 5: (Зубчасті масиви)

Може бути певний сценарій, коли ви хочете, щоб кожен рядок мав різну кількість стовпців. Цей тип масиву називається Jagged Array.

Java




import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >// declaring a 2D array with 2 rows> >int> jagged[][] =>new> int>[>2>][];> > >// not specifying the 2nd dimension,> >// and making it as jagged array> >// first row has 2 columns> >jagged[>0>] =>new> int>[>2>];> >// second row has 4 columns> >jagged[>1>] =>new> int>[>4>];> >// Initializing the array> >int> count =>0>;> >for> (>int> i =>0>; i // remember to use jagged[i].length instead of // jagged[0].length, since every row has // different number of columns for (int j = 0; j jagged[i][j] = count++; } } // printing the values of 2D Jagged array System.out.println('The values of 2D jagged array'); for (int i = 0; i for (int j = 0; j System.out.printf(jagged[i][j] + ' '); System.out.println(); } } }>

>

>

Вихід

The values of 2D jagged array 0 1 2 3 4 5>

Програма для додавання двох 2D-масивів:

Java


mylivecricket в



import> java.io.*;> import> java.util.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >int>[][] arr1 = { {>1>,>2>,>3> }, {>4>,>5>,>6> } };> >int>[][] arr2 = { {>4>,>5>,>6> }, {>1>,>3>,>2> } };> >int>[][] sum =>new> int>[>2>][>3>];> > >// adding two 2D arrays element-wise> >for> (>int> i =>0>; i for (int j = 0; j 0].length; j++) { sum[i][j] = arr1[i][j] + arr2[i][j]; } } System.out.println('Resultant 2D array: '); for (int i = 0; i System.out.println(Arrays.toString(sum[i])); } } }>

>

>

Вихід

Resultant 2D array: [5, 7, 9] [5, 8, 8]>