terça-feira, 6 de abril de 2010

[Java] Criar uma matriz multidimensional


Da mesma forma que funcionam as matrizes de matrizes que vimos neste post. Matrizes multidimensionais são matrizes de matrizes com mesmo tamanho. Ficou complicado? Então observe a figura abaixo.


Para melhorar a visualização, utilizade e usabilidade de uma matriz multidimensional procure entende-la como uma tabela. Assim, esta mesma matriz mostrada acima seria entendida da seguinte forma.


As matrizes com duas e três dimensões são as mais utilizadas no dia-a-dia. Entretanto, matrizes multidimensionais podem ter, obviamente, mais de três dimensões. Para declarar matrizes de três ou mais dimensões deve-se apenas acrescentar mais colchetes em sua declaração. Veja o exemplo abaixo de uma matriz com quatro dimensões para compreender melhor.
int[][][][] matrizQuatroDimensoes = new int [2][2][2][2];
A matriz deste exemplo pode ser vista da seguinte forma.


Matrizes multidimensionais também pode ser declarada e inicializada de forma simplificada. Considerando uma matriz com quatro dimensões, veja o exemplo abaixo.

int matrizQuatroDimensoes[][][][]={ { {{1, 2},{3, 4}},
{{5, 6},{7, 8}}
},
{ {{9, 10},{11, 12}},
{{13, 14},{15, 16}}
}
}
Lembrando que você não precisa colocar tantos espaços e quebra de linhas como foi feito acima. Fiz dessa forma apenas para melhor vizualizar.

4 comentários:

  1. Mto bom blog Carina, mas não sei se vc percebeu, sua matriz ou figura ta errada dependendo do objetivo. O certo é [linhas][colunas], suas matrizes mostram 5 linhas e 4 colunas no código, mas na figura mostra o oposto.

    ResponderExcluir
  2. Desculpa, erro meu. Obrigada por corrigir meu erro. Vou corrigir aqui.

    ResponderExcluir
  3. Sem problemas, as vezes pensamos em fazer algo e acabamos fazendo outra coisa. Só alertei p/ não confundir mais o pessoal que estiver aprendendo =D
    Boa sorte no concurso =)

    ResponderExcluir
  4. Pois é... E depois que eu consertei, lembrei porque acabei errando, na verdade eu queria fazer um vetor vertical de ponteiros e para a figura não ficar gigante e feia acabei fazendo horizontal e ignorei completamente o fato "[linhas][colunas]". Acontece... hehehe

    ResponderExcluir