multidimensional arrays java 2d
Este tutorial sobre matrizes multidimensionais em Java discute como inicializar, acessar e imprimir matrizes 2d e 3d em Java com exemplos de sintaxe e código:
Até agora, discutimos os principais conceitos sobre matrizes unidimensionais. Esses arrays armazenam uma única sequência ou lista de elementos do mesmo tipo de dados.
Java também suporta arrays com mais de uma dimensão e são chamados de arrays multidimensionais.
=> Verifique TODOS os tutoriais Java aqui.
Os arrays multidimensionais Java são organizados como um array de arrays, ou seja, cada elemento de um array multidimensional é outro array. A representação dos elementos é em linhas e colunas. Portanto, você pode obter um número total de elementos em uma matriz multidimensional multiplicando o tamanho da linha pelo tamanho da coluna.
Portanto, se você tiver uma matriz bidimensional de 3 × 4, o número total de elementos nesta matriz = 3 × 4 = 12.
Neste tutorial, vamos explorar arrays multidimensionais em Java. Vamos primeiro discutir as matrizes bidimensionais antes de passar para as matrizes tridimensionais ou mais.
O que você aprenderá:
- Matriz bidimensional
- Arrays Java MultiDimensional
- Arrays tridimensionais em Java
- perguntas frequentes
- Conclusão
Matriz bidimensional
O mais simples da matriz multidimensional é uma matriz bidimensional. Uma definição simples de arrays 2D é: Um array 2D é um array de arrays unidimensionais.
Em Java, uma matriz bidimensional é armazenada na forma de linhas e colunas e é representada na forma de uma matriz.
A declaração geral de uma matriz bidimensional é,
data_type () () array_name;
Aqui,
data_type = tipo de dados dos elementos que serão armazenados em uma matriz.
array_name = nome do array bidimensional.
Você pode criar uma matriz 2D usando novo da seguinte maneira:
data_type () () array_name = new data_type(row_size)(column_size);
Aqui,
perguntas e respostas da entrevista css para experientes
row_size = número de linhas que um array conterá.
column_size = número de colunas que a matriz conterá.
Portanto, se você tiver uma matriz de 3 × 3, significa que terá 3 linhas e 3 colunas.
O layout desta matriz será como mostrado abaixo.
Linhas colunas | Coluna 1 | Coluna 2 | Coluna 3 |
---|---|---|---|
Linha 1 | (0,0) | (0,1) | (0.2) |
Linha 2 | (1.0) | (1,1) | (1,2) |
Linha 3 | (2.0) | (2.1) | (2.2) |
Conforme mostrado acima, cada interseção de linha e coluna armazena um elemento da matriz 2D. Portanto, se você deseja acessar o primeiro elemento no array 2d, ele é dado por (0, 0).
Observação que como o tamanho do array é 3 × 3, você pode ter 9 elementos neste array.
Uma matriz de inteiros chamada ‘myarray’ de 3 linhas e 2 colunas pode ser declarada como abaixo.
int ()() myarray = new int(3)(2);
Depois que o array é declarado e criado, é hora de inicializá-lo com valores.
Inicializar 2d Array
Existem várias maneiras de inicializar o array 2d com valores. O primeiro método é o método tradicional de atribuir valores a cada elemento.
A sintaxe geral para inicialização é:
array_name(row_index)(column_index) = value;
Exemplo:
int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1;
As instruções acima inicializam todos os elementos do array 2d fornecido.
Vamos colocá-lo em um programa e verificar a saída.
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)); } }
Resultado:
Este método pode ser útil quando as dimensões envolvidas são menores. À medida que a dimensão da matriz aumenta, é difícil usar esse método de inicialização individual dos elementos.
O próximo método de inicialização do array 2d em Java é inicializar o array apenas no momento da declaração.
A sintaxe geral para este método de inicialização é fornecida a seguir:
data_type()() array_name = {{val_r1c1,val_r1c2,...val_r1cn}, {val_r2c1, val_r2c2,...val_r2cn}, … {val_rnc1, val_rnc2,…val_rncn}};
Por exemplo, se você tiver uma matriz 2 × 3 do tipo int, então você pode inicializá-lo com a declaração como:
int ()() intArray = {{1, 2, 3}, {4, 5, 6}};
O exemplo a seguir mostra a declaração do array 2d com inicialização.
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(); } } }
Resultado:
No programa acima, a matriz é inicializada no momento da declaração e, em seguida, os valores são exibidos.
Você também pode inicializar ou atribuir os valores ao array 2d usando um loop conforme mostrado abaixo.
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; } }
O programa a seguir implementa o código acima.
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(); } } }
Resultado:
Cada elemento na matriz 2d acima recebe um valor ‘i + 1’. Isso faz com que cada elemento em uma linha da matriz contenha o mesmo valor.
Acessar e imprimir matriz 2d
Você já sabe que ao inicializar o array 2d, você pode inicializar os elementos individuais do array com um valor. Isso é feito usando o índice de linha e o índice de coluna da matriz para acessar um elemento específico.
Semelhante à inicialização, você também pode acessar o valor do elemento individual e imprimi-lo para o usuário.
A sintaxe geral para acessar o elemento da matriz é:
data_typeval = array_name(row_index)(column_index);
Onde array_name é a matriz cujo elemento é acessado e data_type é o mesmo que o tipo de dados da matriz.
O programa a seguir mostra como um elemento individual é acessado e impresso.
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)); } }
Resultado:
Dessa forma, você pode acessar e imprimir facilmente elementos individuais da matriz usando índices de linha e coluna entre colchetes (()).
Você pode imprimir a matriz inteira de uma vez em um formato tabular como mostrado acima (também chamado de formato de matriz) usando o loop for. Como este é um array bidimensional, você precisa ter dois loops para isso. Um loop para percorrer as linhas, ou seja, o loop externo e o loop interno para percorrer as colunas.
Em qualquer dado instante (iteração atual), o elemento particular na matriz é dado por,
array_name (i) (j);
Onde ‘i’ é a linha atual e ‘j’ é a coluna atual.
O programa a seguir mostra a impressão de uma matriz 2d usando um loop ‘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(''); } } }
Resultado:
No programa acima, o array 2d é inicializado e então os elementos são impressos usando dois loops for. O externo é usado para controlar as linhas, enquanto o interno é para as colunas.
Comprimento do array 2d Java
Uma matriz bidimensional é definida como a matriz de uma matriz unidimensional. Portanto, quando você precisa do comprimento de uma matriz 2d, não é tão simples quanto em uma matriz unidimensional.
A propriedade length para uma matriz bidimensional retorna o número de linhas na matriz. Cada linha é uma matriz unidimensional. Você já sabe que a matriz bidimensional consiste em linhas e colunas. O tamanho da coluna pode variar para cada linha.
Portanto, você pode obter o tamanho de cada linha iterando através do número de linhas.
O programa a seguir fornece o comprimento da matriz (número de linhas), bem como o tamanho de cada linha.
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 Resultado:

Uma matriz bidimensional definida acima possui duas linhas. Cada linha é uma matriz unidimensional. O primeiro array 1D possui 3 elementos (3 colunas), enquanto a segunda linha possui 2 elementos.
O programa Java a seguir mostra o uso da propriedade length para imprimir o array 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 Resultado:

Como já mencionado, o loop externo representa as linhas e o loop for interno representa as colunas.
Observação: A condição de término em ambos os loops usa a propriedade length, primeiro para iterar por meio de linhas e depois por colunas.
Arrays Java MultiDimensional
Já vimos matrizes bidimensionais. Java oferece suporte a matrizes com mais de duas dimensões.
A sintaxe geral de uma matriz multidimensional é a seguinte:
data_type (d1)(d2)…(dn) array_name = new data_type(d1_size)(d2_size)…(dn_size);
Aqui,
d1, d2 ... dn = dimensões da matriz multidimensional
(d1_size) (d2_size)… (dn_size) = respectivos tamanhos das dimensões
data_type = tipo de dados dos elementos da matriz
array_name = nome do array multidimensional
Como um exemplo de mais uma matriz multidimensional diferente da matriz 2d, vamos discutir os detalhes das matrizes tridimensionais (3d).
Arrays tridimensionais em Java
Já discutimos que um array fica mais complexo à medida que suas dimensões aumentam. As matrizes tridimensionais são complexas para as matrizes multidimensionais. Uma tridimensional pode ser definida como uma matriz de matrizes bidimensionais.
A definição geral de uma matriz tridimensional é dada abaixo:
data_type () () () array_name = new data_type (d1)(d2)(d3);
Aqui,
d1, d2, d3 = tamanhos das dimensões
data_type = tipo de dados dos elementos da matriz
array_name = nome do array 3d
Exemplo de definição de matriz 3D é:
int () () () intArray = new int(2)(3)(4);
A definição acima de array 3d pode ser interpretada como tendo 2 tabelas ou arrays, 3 linhas e 4 colunas que totalizam até 2x3x4 = 24 elementos.
Isso significa que em uma matriz 3d, as três dimensões são interpretadas como:
- O número de tabelas / matrizes: A primeira dimensão indica quantas tabelas ou matrizes uma matriz 3D terá.
- O número de linhas: A segunda dimensão significa o número total de linhas que um array terá.
- O número de colunas: A terceira dimensão indica o total de colunas na matriz 3d.
Inicializar array 3d
As abordagens usadas para inicializar um array 3d são as mesmas usadas para inicializar arrays bidimensionais.
Você pode inicializar a matriz atribuindo valores a elementos individuais da matriz ou inicializar a matriz durante a declaração.
O exemplo abaixo mostra a inicialização do array 3d durante a declaração.
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)); } }
Resultado:

Depois de inicializar o array 3d durante a declaração, acessamos os elementos individuais do array e os imprimimos.
Acesso e impressão 3D Array
Novamente, imprimir e acessar elementos de matriz em uma matriz tridimensional é semelhante ao de matrizes bidimensionais.
O programa abaixo usa loops for para acessar os elementos do array e imprimi-los no console.
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(); } } }
Resultado:

O programa acima exibe uma representação tabular de uma matriz tridimensional. Como mostrado, é uma matriz 3x2x3, o que significa que possui 3 tabelas, 2 linhas e 3 colunas e, portanto, 18 elementos.
Já foi mencionado que o tamanho da coluna pode variar em uma matriz multidimensional. O exemplo abaixo demonstra uma matriz tridimensional com tamanhos de coluna variados.
Este programa também usa o loop for aprimorado para percorrer a matriz e exibir seus elementos.
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(); } } }
Resultado:

A matriz de entrada usada é uma matriz tridimensional com um comprimento variado de colunas. O aprimorado para cada loop usado para cada dimensão exibe o conteúdo da matriz em um formato tabular.
perguntas frequentes
Q # 1) O que você quer dizer com array bidimensional?
Responda: Uma matriz bidimensional é chamada de matriz de matrizes e geralmente é organizada na forma de matrizes que consistem em linhas e colunas. Um array bidimensional encontra seu uso principalmente em bancos de dados relacionais ou estruturas de dados semelhantes.
Q # 2) O que é um array unidimensional em Java?
Responda: Array unidimensional em Java é um array com apenas um índice. Esta é a forma mais simples de arrays em Java.
Q # 3) Qual é a diferença entre uma matriz unidimensional e uma matriz bidimensional?
Responda: A matriz unidimensional armazena uma única sequência de elementos e possui apenas um índice. Um array bidimensional armazena um array de arrays de elementos e usa dois índices para acessar seus elementos.
P # 4) O que significa ser bidimensional?
Responda: Bidimensional significa ter apenas duas dimensões. Em um mundo geométrico, os objetos que têm apenas altura e largura são objetos bidimensionais ou 2D. Esses objetos não têm espessura ou profundidade.
Triângulo, retângulos, etc. são objetos 2D. Em termos de software, bidimensional ainda significa ter duas dimensões e geralmente definimos estruturas de dados como arrays que podem ter 1, 2 ou mais dimensões.
árvore binária simples c ++
Q # 5) Qual vem primeiro em uma matriz - linhas ou colunas?
Responda: Matrizes bidimensionais são representadas como matrizes e matrizes são geralmente escritas em termos de linhas x colunas. Por exemplo, uma matriz de tamanho 2 × 3 terá 2 linhas e 3 colunas. Portanto, para a matriz 2D também, as linhas vêm primeiro e as colunas depois.
Conclusão
Isso era tudo sobre arrays multidimensionais em Java. Discutimos todos os aspectos de matrizes bidimensionais, bem como uma matriz com mais de duas dimensões.
Geralmente são chamados de array ou arrays, pois, no caso de arrays multidimensionais, cada elemento é outro array. Assim, podemos dizer que um array contém outro array ou simplesmente um array de arrays.
Em nossos próximos tutoriais, exploraremos mais sobre arrays e, em seguida, passaremos para outras coleções.
=> Veja a série de treinamento simples em Java aqui.
Leitura recomendada
- Array Java - como imprimir elementos de um array em Java?
- Array genérico de Java - como simular matrizes genéricas em Java?
- Arrays multidimensionais e arrays irregulares em C #
- Introdução aos arrays Java e conceitos relacionados
- Arrays multidimensionais em C ++
- Java DataTypes, Loops, Arrays, Switch e Assertions
- Array Java - declarar, criar e inicializar um array em Java
- Tutorial de comprimento de array Java com exemplos de código