1. Matrizes na memória
Nos exemplos anteriores, as ilustrações eram um pouco imprecisas.
Ao criar arrays (como ao criar strings), dois blocos separados de memória são alocados: um para armazenar o próprio array (container) e um segundo bloco para a variável que armazena seu endereço . A figura abaixo representa esse esclarecimento:
A memória alocada para o array de 10
int
elementos e a int[]
variável que armazena o endereço do int
array é mostrada em verde.
int
Para comparação, uma variável comum que armazena o valor 199
é mostrada em azul.
Isso lembra um pouco o armazenamento de strings na memória, não acha?
Isso mesmo, cordas. E assim como quando você trabalha com strings, você pode atribuir variáveis de array umas às outras:
Código | Explicação |
---|---|
|
Crie uma matriz de 10 int elementos. Atribua o valor 4 à célula com index 2 . Atribua o valor 9 à célula com index 7 . Na b variável, salve o endereço armazenado na a variável. Agora a e b aponte para o mesmo objeto de matriz na memória. Na célula do objeto array com índice 9 , escreva a soma dos valores que estão armazenados nas células 2 (que armazena o valor 4 ) e 7 (que armazena o valor 9 ). |
O objeto array fica exatamente onde estava, e as a
variáveis b
e armazenam o mesmo endereço (referência) para o mesmo objeto. Olha a foto:

2. Mais detalhes sobre como trabalhar com arrays
Você pode criar uma matriz de elementos de absolutamente qualquer tipo. Para fazer isso, basta escrever colchetes após o nome do tipo. Em geral, a criação de um array se parece com isso:
type[] name = new type[number];
Onde type é o tipo dos elementos que iremos armazenar no array. Name é o nome da variável que usaremos para nos referir ao array, e number é o número de células no array.
O exemplo acima é a forma canônica para criar uma variável de array e um objeto de array. Na realidade, essas são duas entidades separadas.
Você pode criar uma variável de array separadamente de um objeto de array:
type[] name;
name = new type[number];
E mais um ponto que não é insignificante:
Exemplos:
Código | Explicação |
---|---|
|
Criar uma matriz de n elementos |
|
Criar uma matriz com 203 elementos |
|
|
0..99
um
ArrayIndexOfBoundException
, o que significa que o índice estava fora dos limites da matriz.
3. Comprimento da matriz
Como você viu no exemplo anterior, você pode criar uma variável de array sozinha e depois atribuir um valor (uma referência a um objeto de array) a ela em algum lugar do código. Você pode até fazer isso:
Código | Explicação |
---|---|
|
Crie uma variável de matriz cujo tipo seja int[] Se a a variável for menor que 10 , crie uma matriz de 10 elementos. Caso contrário, crie uma matriz de 20 elementos |
E agora o que mais você pode fazer com essa matriz? Como você sabe quantos elementos estão nele?
Para ajudar com isso, os arrays possuem uma propriedade especial (variável) chamada length
. Você pode encontrar o comprimento de uma matriz usando esta expressão:
array.length;
Aqui array
está o nome da variável do array e length
é o nome da propriedade do array. O valor da length
propriedade não pode ser alterado: a length
própria propriedade pode ser atribuída a outras variáveis, mas nada pode ser atribuído a ela (se você tentar fazer isso, o programa simplesmente não será compilado).
Podemos continuar com o exemplo anterior assim:
Código | Explicação |
---|---|
|
Crie uma variável de matriz cujo tipo seja int[] Se a a variável for menor que 10 , crie uma matriz de 10 elementos. Caso contrário, crie uma matriz de 20 elementos Faça um loop sobre todos os elementos da matriz: de 0 ao comprimentoarray.length - 1 |
4. Resumo dos fatos sobre arrays em Java
Vamos recapitular o que sabemos sobre arrays:
Fato 1. Uma matriz consiste em muitas células.
Fato 2. Você acessa uma célula específica usando seu número (índice).
Fato 3. Todas as células são do mesmo tipo.
Fato 4. O valor inicial de todas as células é 0 (se as células armazenam números), null
(se as células armazenam referências de objetos) ou false
(se as células armazenam boolean
valores). Você aprenderá mais sobre os valores padrão neste capítulo .
Fato 5. String[] list
é apenas a declaração de uma variável. Isso não cria o contêiner (objeto de matriz) em si. Para usar a variável, você precisa primeiro criar um array (container) e atribuí-lo à variável. Veja o exemplo abaixo.
Fato 6. Quando criamos um objeto array (container), devemos indicar o tamanho dele, ou seja, quantas células ele contém. Isso é feito com uma instrução como: new TypeName[n]
;
Fato 7. O comprimento de um array pode ser encontrado usando a .length
propriedade.
Fato 8. Depois de criar um array, você não pode alterar o tipo de seus elementos ou o número de elementos que ele armazena.
Código | Explicação |
---|---|
|
s é null list énull |
|
A list variável armazena uma referência a um objeto: uma matriz de strings composta por 10 elementos. n é10 |
|
Agora |
|
Uma exceção (erro de programa) será lançada, ou seja, o programa travará. list armazena uma referência anull |
|
Uma exceção de matriz fora dos limites (erro de programa) será gerada. Se a list armazena 10 elementos/células, então os índices válidos são: 0 1 2 3 4 5 6 7 8 9 — 10 elementos. |
GO TO FULL VERSION