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 ( Array
classe). 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 .
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
Digamos que seu programa precise armazenar 100
nú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 int
tipo seria adequado para nós. Mas se quisermos armazenar 100
números inteiros, provavelmente precisaremos de um array de int
s. É 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 array
cujo tipo é int[]
. O int
tipo é 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 new
palavra-chave) para obter 100
elementos (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
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 10
elementos, os números (índices) de suas células serão 0..9
. Se a matriz contiver 200
elementos, os índices serão 0..199
. E assim por diante por analogia.
Exemplos:
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 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:
A coluna da esquerda (em cinza) representa os números das células (índices). As células armazenam os valores atribuídos: 4
, 9
e 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 String
s, 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.