0

Arrays Uni e Bi-dimensionais em java

Arrays

O problema:
Imagine que nós estejamos escrevendo um sistema de cadastro de estudantes, onde serão inseridos apenas seus nomes. No início sabe-se que serão cadastrados apenas 3 estudantes e escrevemos:

A solução

//Bela tentativa
String estudante1;
String estudante2;
String estudante3;
Tudo certo até agora, mas, se o número de estudantes aumenta para 15? Será que vamos escrever quinze linhas daquelas? Não, é ai onde entram os arrays, eles agrupam dados do mesmo tipo numa única variàvel, uma variàvel indexada, ou seja, onde cada elemento contém um índice.

Para resolver o nosso problema, nós seríamos obrigados a declarar um array uni-dimensional de Strings. O que é isso de uni-dimensional? Isso simplesmente quer dizer que o nosso array tem apenas uma coluna, ou seja, um array é uma tabela. Vamos então declarar uma "tabela" de uma coluna:

//Array de uma coluna [Uni-dimensional]
String[] estudantes = new String[15];


Acabamos de resolver o problema dos 15 estudantes. Se quiséssemos declarar um array de 15 valores inteiros nós faríamos o seguinte:


//Array que armazena 15 valores inteiros
int[] = new valores[15;


Para obter ou definir o nome de um dos estudantes do sistema, temos que mecionar o nome do array e entre parentesêis rectos colocar o índice.

O menor índice de um array é 0 (zero) e o maior índice é a [dimensão do array]-1, ou seja, 15-1=14. 

//Para aceder ao nome de primeiro estudante faríamos:
estudante[0];
//Para aceder ao nome do ultimo estudante:
estudante[14];


Arrays Bi-dimensionais

Imagine que depois de alterarmos o nosso sistema para cadastrar os 15 estudantes (nomes) surja a necessidade de incluir as nacionalidades dos mesmos.

Voce deve estar pensando o seguinte:
Vamos declarar um segundo array com o nome nacionalidadess do tipo String:


//errado
String[] nacionalidades= new String[15];


A sua ideia não é irracional, faz sentido sim, mas, ficaria mais prático termos apenas um array. Por isso existem também os bi-dimensionais, ou seja, com mais de uma coluna. Colo resolver o nosso problema:

//Um array bi-dimensional
String[][] estudantes= new String[15][2];


Com esta simples linha resolvemos o nosso probleminha. Este array tem duas colunas. A coluna dos nomes e a dos apelidos, ou seja, é um array 15x2. 15 Linhas e 2 colunas.

Desenhe uma tabela de 15 linhas e 2 colunas em um papel para poder perceber...
  • A primeira coluna é do nome do estudante..
  • A segunda coluna é da nacionalidade do estudante

//Para ceder aos dados de um estudante vamos usar a regra:
estudante[linha][coluna];


Temos que ter em vonta que o Nome do estudantes está na primeira coluna (0) e a nacionalidade na segunda coluna (1), ou seja, o nome do primeiro estudante está na primeira linha e na primeira coluna:

//Nome do primeiro estudante
estudante[0][0];
//O primeiro zero indica a linha da tabela (array), sabemos que cada estudante tem a sua linha. O segundo zero indica a primeira coluna.

//Para obter nome de qualquer estudante devemos usar a regra:
estudante[indice_do_estudante][0];

//Para obter nacionalidade de qualquer estudante devemos usar a regra:
estudante[indice_do_estudante][1];

//Nacionalidade do primeiro estudante
estudante[0][1];


Nao se esqueça que o maior índice de um array é igual à dimensao-1. 

 Inicialização de arrays

Iniciarlizar é definir um valor inicial.

Vamos definir umas pequenas regras para nao nos perdermos:
Cada par de chavetas {} dentro de um único par de chavetas, separados por vírguas é uma Linha (Array bi-dimensional).
Cada Valor dentro de um único par de chavetas, separados por vírgulas é uma Linha (Array uni-dimensional).


//Para inicializar um array uni-dimensional podemos usar a seguinte maneira:
//Ném precisamos dizer quantas colunas e linhas tem, ele automaticamente define.
String[] estudantes={"Mario","Eben","Justino","Jose"};

//Para inicializar um array bi-dimensional podemos usar a seguinte via:
//Dentro das chavetas temos
String[][] estudantes= {{"Mario","Junior"},{"Eben","Zavala"},{"Justino","Langa"},{"Jose","Paulino"}};


Referências:
http://www.devmedia.com.br/matrizes-vetores-em-java-parte-3/21573
http://www.java2s.com/Code/Java/Collections-Data-Structure/Javaprogramtodemonstratemultidimensionalarrays.htm



Existe algo mais fácil? Claro que não! Continue lendo nossos artigos.
Os Beginners.