Olá desenvolvedores, listas e coleções, são o ponta pé inicial na forma correta de implementarmos e estabelecermos uma relação entre objetos. Em Java, uma lista é uma coleção ordenada de elementos do mesmo tipo. Ou ainda, é uma estrutura ordenada que permite manipular objetos genéricos.

Entre as características de uma lista, duas merecem destaque, a possibilidade de armazenar elementos duplicados. E a principal que é a capacidade da lista de aumentar dinamicamente o seu tamanho de acordo com o uso da estrutura.

Além disso, as listas são implementadas na forma de ArrayList, LinkedList, Vector e fazem parte dos pacotes, java.util.ArrayList e java.util.List. E por compreenderem uma interface abstrata não podem ser referenciadas. A interface da qual as listas derivam é a java.util.List<E>, que estende a interface Collection.

INTERFACE COLLECTION (COLEÇÃO)

Entenda primeiro o que são interfaces. Uma interface é um tipo de classe que pode conter ou não variáveis, que pode conter ou não métodos, desde que sem escopos. E ainda mais importante, objetos não podem ser definidos a partir de interfaces, o que explica o porquê de listas não poderem ser referenciadas.

Dessa forma, collection é um conjunto de interfaces e classes para representar e tratar grupos de dados como uma única unidade.

ENTENDENDO O FUNCIONAMENTO DE LISTAS

Certamente em seu dia a dia você já teve que lidar com listas. Seja uma lista de compras, uma lista de tarefas, ou no contexto da programação uma lista “to do”. A lista de tarefas ou “to do list”, é considerada uma das mais eficazes ferramentas de produtividade pessoal.

Mas enfim, ao lidar com uma lista você já teve que adicionar ou remover elementos, correto? E de um modo bem generalizado um software é feito de listas que estão o tempo todo sendo processadas. É neste contexto computacional que a lista qual estamos falando se insere. Porém, obedecendo a certas estruturas, em conformidade com a linguagem.

No Java, a estrutura de criação de uma lista genérica obedece aos critérios que comportam, a saber. A declaração de uma interface do tipo list, seguida de uma variável e a inicialização, que é uma instância do tipo ArrayList

List lista = new ArrayList()  

RECAPITULANDO.

Em “ADICIONANDO UM NOVO OBJETO AO SISTEMA”, foi dado um importante passo para estudarmos o relacionamento entre objetos e compreendê-los. Assim, com o objetivo de aprimorar o sistema que estamos construindo juntos implementaremos um novo objeto ao sistema.

Assim, criamos a Classe Disciplina a qual relacionamos os atributos nota e disciplina. E lembram quando foi mencionado em “ADICIONANDO NOVOS ATRIBUTOS AO SISTEMA” a existência de um modo dinâmico de fazermos isso? Aí está, são as listas.

Após a criação e adição dos novos atributos, foram gerados os métodos setters and getters e hashCode() and equals() para cada um dos atributos.

private String disciplina01;
private String nota01;

Na classe principal solicitamos ao usuário que entrasse com os dados solicitados. O passo seguinte foi passar as novas informações para o objeto por referência.

Mas agora a disciplina está dentro do objeto aluno que por sua vez foi instanciado dentro da Classe Aluno. Dessa forma precisaremos inserir um novo elemento para “setar” a disciplina e a nota.

aluno.getDisciplina.setNota01(Double.parseDouble(nota01));
aluno.getDisciplina.setDisciplina01(disciplina01);

E por fim, a partir do método toString imprimimos os dados no console. Entretanto, atente-se, a Classe Aluno imprime os dados do aluno. Enquanto que a Classe Disciplina, por sua vez, imprimirá, os referidos dados da situação acadêmica do aluno

Um processo interessante que cumpre o propósito da realização da tarefa. Mas não passa perto da implementação dinâmica para qual a orientação a objeto foi desenvolvida. Mas estudar este caminho foi importante para a sua compreensão da lógica por trás do processo.

EM POUCAS PALAVRAS

Quando concluímos o tutorial anterior citamos a existência de um caminho que nos conduziria a existência de um código mais performático e dinâmico. E este caminho são as listas.

A partir de agora trabalharemos muito com as listas, por isso enfatizo a sugestão. Memorize o que precisa ser memorizado, entenda o que precisa ser entendido. Não avance, seja para a próxima aula do Formação Java Web, seja nos tutoriais disponibilizados aqui na plataforma Jdev Treinamento, sem ter compreendido.

A partir de agora trabalharemos muito com as listas, tornando o nosso sistema mais dinâmico e interativo a partir da implementação delas. Vamos criar uma lista de disciplinas e aprender a percorrer esta lista. Além de aprimorarmos ainda mais o que fizemos até aqui, como o cálculo da nota e a verificação da situação do aluno.

Não tem para onde correr. Se você quer trabalhar com programação é essencial aprender a trabalhar com listas. Então pratique, crie seus próprios exercícios. Teste e implemente as suas próprias soluções. Você só aprenderá programação, programando.

Então é isso caros colegas desenvolvedores, objetivo cumprido ao apresentar a você importantes conceitos sobre listas e coleções. Fique ligado no próximo tutorial, onde começaremos a colocar em prática o aprendizado de hoje.