multidimensional arrays java 2d
Този урок за многомерни масиви в Java обсъжда как да инициализирате, отворите и отпечатате 2d и 3d масиви в Java с примери за синтаксис и код:
Досега обсъждахме основните концепции за едномерните масиви. Тези масиви съхраняват единична последователност или списък с елементи от същия тип данни.
Java също поддържа масиви с повече от едно измерение и те се наричат Многомерни масиви.
=> Проверете ВСИЧКИ уроци за Java тук.
Многомерните масиви на Java са подредени като масив от масиви, т.е.всеки елемент от многоизмерен масив е друг масив. Представянето на елементите е в редове и колони. По този начин можете да получите общ брой елементи в многомерен масив, като умножите размера на реда с размера на колоната.
Така че, ако имате двумерен масив 3 × 4, тогава общият брой елементи в този масив = 3 × 4 = 12.
В този урок ще изследваме многомерни масиви в Java. Нека първо обсъдим двумерните масиви, преди да преминем към три или повече размерни масиви.
Какво ще научите:
Двуизмерен масив
Най-простият от многомерния масив е двуизмерен масив. Една проста дефиниция на 2D масиви е: 2D масивът е масив от едномерни масиви.
Въпроси и отговори за интервю за mysql
В 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 е масивът, чийто елемент е достъпен, а data_type е същият като типа данни на масива.
Следващата програма показва как се осъществява достъп и отпечатване на отделен елемент.
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 масива
Пример за дефиниция на 3D масив е:
int () () () intArray = new int(2)(3)(4);
Горната дефиниция на 3d масив може да бъде интерпретирана като имаща 2 таблици или масиви, 3 реда и 4 колони, които общо достигат до 2x3x4 = 24 елемента.
Това означава, че в 3D масив трите измерения се интерпретират като:
- Броят на таблици / масиви: Първото измерение показва колко таблици или масиви ще има 3D масив.
- Броят на редовете: Второто измерение означава общия брой редове, които ще има масив.
- Броят на колоните: Третото измерение показва общия брой колони в 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(); } } }
Изход:

Използваният входен масив е триизмерен масив с различна дължина на колоните. Усъвършенстваният за всеки цикъл, използван за всяко измерение, показва съдържанието на масива в табличен формат.
често задавани въпроси
В # 1) Какво имате предвид под двуизмерен масив?
Отговор: Двуизмерен масив се нарича масив от масиви и обикновено се организира под формата на матрици, състоящи се от редове и колони. Двуизмерен масив намира приложение най-вече в релационни бази данни или подобни структури от данни.
В # 2) Какво представлява едномерният масив в Java?
Отговор: Едномерният масив в Java е масив само с един индекс. Това е най-простата форма на масиви в Java.
В # 3) Каква е разликата между едноизмерен масив и двуизмерен масив?
Отговор: Едномерният масив съхранява единична последователност от елементи и има само един индекс. Двуизмерен масив съхранява масив от масиви от елементи и използва два индекса за достъп до неговите елементи.
В # 4) Какво означава да бъдеш двуизмерен?
Отговор: Двуизмерно означава да има само две измерения. В геометричния свят обектите, които имат само височина и ширина, са двуизмерни или 2D обекти. Тези обекти нямат дебелина или дълбочина.
Триъгълник, правоъгълници и др. Са 2D обекти. От гледна точка на софтуера, двуизмерното все още означава да има две измерения и обикновено дефинираме структури от данни като масиви, които могат да имат 1, 2 или повече измерения.
най-добрият безплатен блокер за изскачащи прозорци хром
В # 5) Коя е на първо място в масив - Редове или Колони?
Отговор: Двуизмерните масиви са представени като матрици и матриците обикновено се записват по отношение на редове х колони. Например, матрица с размер 2 × 3 ще има 2 реда и 3 колони. Следователно и за 2D масива редовете идват първи, а колоните следващи.
Заключение
Всичко беше свързано с многомерни масиви в Java. Обсъдихме всички аспекти на двумерните масиви, както и масив с повече от две измерения.
Те обикновено се наричат масив или масиви, тъй като в случай на многомерни масиви всеки елемент е друг масив. По този начин можем да кажем, че масивът съдържа друг масив или просто масив от масиви.
В предстоящите ни уроци ще проучим повече за масивите и след това ще преминем към други колекции.
=> Внимавайте тук за простите учебни серии за Java.
Препоръчително четене
- Java Array - Как да отпечатвате елементи от масив в Java?
- Java Generic Array - Как да симулираме Generic Array в Java?
- Многомерни масиви и назъбени масиви в C #
- Въведение в Java масивите и свързаните с тях концепции
- Многомерни масиви в C ++
- Java DataTypes, Loops, Arrays, Switch и Assertions
- Java Array - Декларирайте, създайте и инициализирайте масив в Java
- Урок за дължина на масив Java с примери за кодове