Múltiplos Valores em uma Variável
Para guardar múltiplos valores em uma variável, nós precisamos de um dado estruturado ao invés de uma simples variável.
Uma estrutura de dados é uma estrutura de locação múltipla de memória. Uma simples estrutura de dados como o Array é um dado linear de estrutura.
Pegando os três jogadores como exemplo, eles são representados por três instâncias da mesma classe Player.java porque eles têm o mesmo comportamento e atributos.
Para guardar três objetos de jogador, dois caminhos podem ser tomados. Um é declarar três variáveis com o mesmo tipo, que no caso é Player.
1 2 3 |
private Player playerMichel; private Player playerAdriano; private Player playerMedeiros; |
A maneira de guardar os dados dos três jogadores em três objetos é espalhar na memória do computador em três locais.
Com os objetos espalhados dessa maneira, qual seria a ordem do jogador para jogar o jogo? Já que eles não têm nenhuma relação um com o outro.
Deixando assim, temos que produzir muito código para fazer por exemplo uma simples pesquisa sobre os jogadores e pior ainda se precisarmos adicionar mais jogadores.
Sendo assim, precisamos de uma outra maneira para fazer a tarefa de guardar dados dos jogadores e acessar os dados dos jogadores individualmente.
Isso pode ser feito com o Array. Isto é, um array não é uma simples locação de memória, mas um grupo consecutivo de locação de memória. Porque eles são alocados consecutivamente, o primeiro jogador é alocado na primeira posição que é a zero, o segundo na segunda posição que é a um e assim por diante.
As posições 0,1,… são chamadas de indexadores ou index. Devido ao fato de que o array é uma sequência consecutiva de alocação de memória, ele é chamado de estrutura de dados unidimensional linear. Veja a imagem:
Criando um Array
A mesma ideia pode ser aplicada para outros tipos de dados, assim como os primitivos. Agora precisamos gravar três objetos de jogadores, para isso vamos criar um array.
1 |
private Player[] playerAry; |
O par de colchetes representa a estrutura de dados do Array. O Player[] significa que o array tem os tipos de dados Player.java. A declaração é lida como “a variável playerAry é um array de Player” ou “um array de Player chamado playerAry”.
Nesse momento, a variável playerAry não está alocada na memória, contudo, nós usamos o termo de “declaração”. Para alocar o array fisicamente na memória, temos que fazer o seguinte:
1 |
Player[] playerAry = new Player[3]; |
O “new Player[3]” indica que nós precisamos de três alocação de memórias consecutivas para cada jogador da classe Player. O valor de 3 é também chamado de tamanho do array.
Como mencionado, cada unidade do array tem seu próprio index. O index sempre começa do zero, então para acessar os dados de cada jogador é assim: playerAry[0], playerAry[1] e playerAry[2].
Se você tentar acessar uma posição que não existe no array, como por exemplo, playerAry[3], irá causar um erro. Com o array podemos manipular os dados por meio dos index, para fazer isso sem um array ficaria bem mais complicado.
Para adicionar um jogador no array devemos fazer o seguinte:
1 2 3 |
playerAry[0] = new Player(); playerAry[1] = new Player(); playerAry[2] = new Player(); |
Mas, em vez de fazer assim, podemos utilizar o for.
1 2 3 |
for(int k = 0; k < playerAry.length; k++){ playerAry[k] = new Player(); } |
Esse exemplo ilustra que o “for” é adequando para manipular um array porque o tamanho de um array é fixo. Sempre que possível, vamos utilizar o “for” para manipular um array.
Caractere não é uma String
Tenha cuidado, uma String consiste em uma sequência de caracteres, mas não é um array e um caractere não é uma String. Contudo, tem uma similaridade, eles podem ser convertidos um pelo outro e tem métodos similares para isso.
Sabemos que um array contém dados do mesmo tipo, tem um tamanho fixo e organiza um grupo de dados facilmente utilizando os indexes. Infelizmente, a vantagem de ter um tamanho fixo às vezes pode ser uma desvantagem.
E se não soubermos o tamanho que o array irá precisar?
Fonte: Learning Java with Games
Deixe um comentário