1. Uma matriz é um contêiner de elementos

Você provavelmente já ouviu falar que os computadores podem processar grandes quantidades de informações. Claro, declarações condicionais ( if-else) e loops ( for, while) são uma grande ajuda aqui. Mas eles só podem levá-lo até certo ponto. Afinal, os dados que você processa precisam ser armazenados de alguma forma.

Como quase todas as linguagens de programação, Java facilita o processamento de dados, fornecendo essa grande coisa chamada array ( Arrayclasse). Eles também são às vezes chamados de tabelas.

Uma matriz é um objeto especial que permite armazenar não um valor, mas vários .

Matrizes Java

Anteriormente, comparamos uma variável a uma caixa (na qual você pode armazenar qualquer valor). Continuando com essa analogia, podemos pensar em um array como uma caixa que possui compartimentos internos. Cada compartimento na "caixa" (matriz) possui um número. Claro, a numeração começa do zero...

Ou podemos fazer outra analogia. Vamos comparar uma casa comum e um prédio de apartamentos alto. Uma casa comum é ocupada por uma única família, mas um prédio alto é dividido em apartamentos. Se você deseja enviar uma carta a uma família que mora em uma casa comum, indique o endereço exclusivo da casa. E para enviar uma carta para uma família que mora em um apartamento, você indica o endereço único do prédio, bem como o número do apartamento.

Uma variável de matriz é como uma variável de arranha-céus. Ele pode armazenar não um, mas muitos valores. Tal variável possui vários apartamentos (células). Cada um deles pode ser endereçado por seu número (índice).

Para fazer isso, após o nome da variável, você indica o índice da célula que deseja endereçar, envolvendo o índice entre colchetes. Isso é bem simples:

array[index] = value;

Onde arrayé o nome da variável do array, indexé o número da célula no array e valueé o valor que queremos colocar na célula especificada.

Mas, para começar, vamos ver como criar arrays.


2. Criando um array de elementos em Java

Criando uma matriz de elementos em Java

Digamos que seu programa precise armazenar 100números inteiros em algum lugar. Um array seria um bom candidato para isso. E como você cria um?

Se quiséssemos armazenar um único inteiro, o inttipo seria adequado para nós. Mas se quisermos armazenar 100números inteiros, provavelmente precisaremos de um array de ints. É assim que o código para criar um ficaria:

int[] array = new int[100];

Vamos explorar esta declaração.

Como você deve ter adivinhado, à esquerda do sinal de igual temos a declaração de uma variável arraycujo tipo é int[]. O inttipo é seguido por colchetes, o que indica que "caixas" desse tipo podem armazenar não um, mas vários valores.

À direita do sinal de igual, temos um exemplo de "criação de objeto" (a newpalavra-chave) para obter 100elementos (células) cujo tipo é int. Nada muito difícil aqui.

Da mesma forma, se quiséssemos criar um array de 20 células para armazenar números reais, então nosso código ficaria mais ou menos assim:

double[] vals = new double[20];

O número de células em uma matriz é chamado de tamanho da matriz ou comprimento da matriz . E como os arrays podem armazenar muitos valores, eles também são chamados de contêineres.

Aqui está um fato importante: você não pode alterar o tamanho de um array depois que ele é criado .

Você pode criar um novo, mas o comprimento do contêiner existente não pode ser alterado.



3. Trabalhando com as células de um array

Trabalhando com as células de um array

Ok, nós aprendemos como criar arrays. Agora, como trabalhamos com eles?

Bem, quase da mesma forma que com variáveis ​​comuns. A única diferença é que após o nome da variável do array, devemos indicar o número da célula com a qual estamos trabalhando.

A numeração das células em uma matriz sempre começa do zero. Se tivermos uma matriz de 10elementos, os números (índices) de suas células serão 0..9. Se a matriz contiver 200elementos, os índices serão 0..199. E assim por diante por analogia.

Exemplos:

Código Explicação
int[] a = new int[10];
a[2] = 4;
a[7] = 9;
a[9] = a[2] + a[5];
Crie uma matriz de 10 intelementos.
Atribua o valor 4à célula com index 2.
Atribua o valor 9à célula com index 7.
Na célula com índice 9, escreva a soma dos valores que estão armazenados nas células 2(que armazena o valor 4) e 5(que armazena o valor 0).

Isto é o que será armazenado na memória após este código ser executado:

Trabalhando com as células de um array int 2

A coluna da esquerda (em cinza) representa os números das células (índices). As células armazenam os valores atribuídos: 4, 9e 4. Quando a matriz é criada, suas células são todas preenchidas com zeros.

Isso é importante. Todas as células em uma matriz têm o mesmo tipo de dados. Se criarmos um array de Strings, apenas strings podem ser armazenadas em suas células. O tipo de dados de uma matriz é especificado quando ela é criada. Nem o tipo de dados nem o comprimento da matriz podem ser alterados posteriormente.