Como trabalhar com matrizes: declarando e inicializando

Se um programa precisar trabalhar com vários valores do mesmo tipo de dados, você pode declarar um variável para cada número. Por exemplo, um programa que exibe números de loteria:

int lotteryNumber1 = 16;
int lotteryNumber2 = 32;
int lotteryNumber3 = 12;
int lotteryNumber4 = 23;
int lotteryNumber5 = 33;
int lotteryNumber6 = 20;

Uma maneira mais elegante de lidar com valores que podem ser agrupados é usar uma matriz. Uma matriz é um contêiner que contém um número fixo de valores de um tipo de dados. No exemplo acima, os números da loteria podem ser agrupados em uma matriz int:

int [] lotteryNumbers = {16,32,12,23,33,20}; 

Pense em uma matriz como uma linha de caixas. O número de caixas na matriz não pode ser alterado. Cada caixa pode conter um valor desde que seja do mesmo tipo de dados que os valores contidos nas outras caixas. Você pode olhar dentro de uma caixa para ver qual valor ela contém ou substituir o conteúdo da caixa por outro valor. Ao falar sobre matrizes, as caixas são chamadas de elementos.

instagram viewer

Declarando e inicializando uma matriz

A declaração de declaração para uma matriz é semelhante à usada para declarar qualquer outra variável. Ele contém o tipo de dados seguido pelo nome da matriz - a única diferença é a inclusão de colchetes ao lado do tipo de dados:

int [] intArray;
float [] floatArray; 
char [] charArray;

o declarações de declaração acima diga ao compilador que

intArray
variável é uma matriz de
ints
,
floatArray
é uma matriz de
carros alegóricos
e
charArray
é uma matriz de caracteres. Como qualquer variável, elas não podem ser usadas até que tenham sido inicializadas, atribuindo-lhe um valor. Para uma matriz, a atribuição de um valor a uma matriz deve definir o tamanho de uma matriz:
intArray = novo int [10]; 

O número entre colchetes define quantos elementos a matriz contém. A instrução de atribuição acima cria uma matriz int com dez elementos. Obviamente, não há razão para que a declaração e a atribuição não ocorram em uma declaração:

float [] floatArray = novo float [10]; 

Matrizes não estão limitadas a tipos de dados primitivos. Matrizes de objetos podem ser criadas:

String [] names = new String [5]; 

Usando uma matriz

Depois que uma matriz é inicializada, os elementos podem ter valores atribuídos a eles usando o índice da matriz. O índice define a posição de cada elemento na matriz. O primeiro elemento está em 0, o segundo elemento em 1 e assim por diante. É importante observar que o índice do primeiro elemento é 0. É fácil pensar que, como uma matriz possui dez elementos, o índice é de 1 a 10 em vez de 0 a 9. Por exemplo, se voltarmos ao exemplo dos números da loteria, podemos criar uma matriz contendo 6 elementos e atribuir os números da loteria aos elementos:

int [] lotteryNumbers = novo int [6];
lotteryNumbers [0] = 16;
lotteryNumbers [1] = 32;
lotteryNumbers [2] = 12;
lotteryNumbers [3] = 23;
lotteryNumbers [4] = 33;
lotteryNumbers [5] = 20;

Há um atalho para preencher elementos em uma matriz colocando os valores para os elementos na declaração da declaração:

int [] lotteryNumbers = {16,32,12,23,33,20};
String [] names = {"John", "James", "Julian", "Jack", "Jonathon"};

Os valores para cada elemento são colocados dentro de um par de colchetes. A ordem dos valores determina qual elemento é atribuído ao valor começando com a posição de índice 0. O número de elementos na matriz é determinado pelo número de valores dentro dos colchetes.

Para obter o valor de um elemento, seu índice é usado:

System.out.println ("O valor do primeiro elemento é" + lotteryNumbers [0]); 

Para descobrir quantos elementos uma matriz usa o campo length:

System.out.println ("A matriz lotteryNumbers tem" + lotteryNumbers.length + "elementos"); 

Nota: Um erro comum ao usar o método length é esquecer é usar o valor length como uma posição de índice. Isso sempre resultará em um erro, pois as posições de índice de uma matriz são de 0 a comprimento - 1.

Matrizes multidimensionais

As matrizes que observamos até agora são conhecidas como matrizes unidimensionais (ou unidimensionais). Isso significa que eles têm apenas uma linha de elementos. No entanto, matrizes podem ter mais de uma dimensão. Uma multidimensional é na verdade uma matriz que contém matrizes:

int [] [] lotteryNumbers = {{16,32,12,23,33,20}, {34,40,3,11,33,24}}; 

O índice para uma matriz multidimensional consiste em dois números:

System.out.println ("O valor do elemento 1,4 é" + lotteryNumbers [1] [4]); 

Embora o comprimento das matrizes contidas em uma matriz multidimensional não precise ter o mesmo comprimento:

String [] [] names = new String [5] [7]; 

Copiando uma matriz

Para copiar uma matriz, a maneira mais fácil é usar o

arraycopy
método da classe System. o
arraycopy
O método pode ser usado para copiar todos os elementos de uma matriz ou uma subseção deles. Existem cinco parâmetros passados ​​para o
 arraycopy
método - a matriz original, a posição do índice para começar a copiar um elemento, a nova matriz, a posição do índice para começar a inserir, o número de elementos para copiar:
arraycopy vazio estático público (Object src, int srcPos, Object dest, int destPos, int length)

Por exemplo, para criar uma nova matriz contendo os quatro últimos elementos de um

int 
matriz:
int [] lotteryNumbers = {16,32,12,23,33,20};
int [] newArrayNumbers = novo int [4];
System.arraycopy (lotteryNumbers, 2, newArrayNumbers, 0, 4);

Como as matrizes têm um comprimento fixo, o

arraycopy
O método pode ser uma maneira útil de alterar o tamanho de uma matriz.

Para aprimorar seu conhecimento sobre matrizes, você pode aprender sobre como manipular matrizes usando as matrizes classe e criação de matrizes dinâmicas (ou seja, matrizes quando o número de elementos não é um número fixo) usando o Classe ArrayList.

instagram story viewer