No tutorial de hoje aprenderemos como trabalhar com arrays de forma dinâmica, ou seja, onde a entrada de dados se dará pelo usuário por meio do teclado. Aprendemos que os arrays se dividem em vetores e matrizes. Isto é, são coleções de variáveis contínuas na memória que podem ser acessadas por meio de um índice.
Matrizes e vetores possuem tamanho fixos, e não podem ser aumentado ou diminuídos uma vez declarados. Entretanto, para contornar tal limitação há um recurso do Java que nos permite utilizar variáveis dinâmicas para determinar o tamanho de um array.
Embora ambos sejam um array, vetores e matrizes se distinguem por suas dimensões. Enquanto vetores possuem uma única dimensão, as matrizes, podem conter várias dimensões.
Por enquanto estamos trabalhando com arrays de uma única dimensão, ou seja, os vetores. E hoje aprenderemos a alocar dados e fazer a leitura destes dados de forma dinâmica. E enquanto o fazemos amadurecemos nosso conhecimento de lógica de programação, além de aprendermos a manipular posições em um array.
Por padrão o array compreende uma estrutura bem limitada, como já dissemos, com tamanho fixo. Podemos alocar dados e percorrer o array lendo estes dados. Mas como também mencionamos acima, o Java possui recursos que nos permitem trabalhar de com arrays de um modo mais flexível.
UTILIZANDO O LENGTH
O length é um recurso que informa o número de elementos alocados em um array, e não o número inserido. Em outras palavras, o length serve para encontrar o comprimento de uma matriz.
Assim sendo, no cabeçalho do for onde declaramos a condição de continuação do loop, no lugar de informar o tamanho fixo do array, utilizamos o “nome_variável.length”. Ao executarmos o nosso programa, teremos o mesmo resultado.
for(int pos = 0; pos < notas.length; pos++){}
ALOCANDO DADOS DE FORMA DINÂMICA
É interessante deixarmos a cargo do usuário informar quantas posições ele deseja que o array tenha. Então poderíamos perguntar: “Quantas notas deseja inserir?” E na sequência pediremos os valores para cada posição do array. Como já o fazemos com o sistema escolar que estamos desenvolvendo.
String posicoes = (JOptionPane.showInputDialog("QUANTAS NOTAS DESEJA INSERIR?"));
Como se trata de um valor do tipo inteiro, então teremos que converter a String em um tipo inteiro.
double[] notas = new double[Integer.parseInt(posições)];
Assim quando executarmos o nosso código será solicitado ao usuário que entre com a quantidade de notas que deseja inserir.
E dessa vez iremos pedir ao usuário que entre com um valor(nota do aluno) para cada posição do array, e para isso temos que criar mais um laço de repetição.
O length vai informar a quantidade de elementos inseridos no array, isto é, ele retorna o comprimento do array, que neste caso é três.
Após compilar o código inserindo os dados necessários o resultado é apresentado no console como mostra a imagem abaixo.
EM POUCOS PALAVRAS
Dependendo da operação que se deseja realizar seja com os vetores ou com as matrizes, é essencial conhecer o comprimento do array. Dessa forma, é legal que você se familiarize com a utilização do length no cabeçalho do for.
Além disso, com este simples exercício começamos a amadurecer nosso conhecimento acerca da estrutura de um array. E com a vantagem de aprender como torná-lo dinâmico. Seja para determinar o comprimento, ou mesmo para percorrê-lo. Então, como sempre, pratique e se divirta com os arrays criando seus próprios exercícios e se desafiando. Nos vemos nos próximo tutorial.