Olá desenvolvedores, o objetivo do tutorial de hoje é ensiná-los a substituir um item da lista. Você já sabe como criar uma lista. Como remover um item da lista, e mais, você pode decidir se irá remover ou não. E não para por aqui, é você quem decide quais dados irá solicitar ao usuário e quais dados imprimir. Avançamos muito em nossos estudos sobre listas.

Na última postagem aprendemos sobre como percorrer uma lista pelo índex, ou seja, levando em consideração a posição do item na lista. E trata-se de uma abordagem muito útil para o que iremos fazer hoje. Isto é, para a substituição de um objeto dentro de uma lista.

Antes, porém, uma observação. Acredito que tenha acompanhado os últimos tutoriais, todo o desenvolvimento do sistema. Então você observou que todas as principais funcionalidades implementadas giram no entorno de listas. Elas realmente são muito importantes em Java. E é exatamente em função da sua importância que este é um conhecimento sobre o qual você não pode guardar dúvidas.

Mas voltando ao tema de hoje, suponhamos que o sistema em questão seja um gerenciador de vendas. Assim, suponha que chegaram 50 novos produtos para serem adicionados ao sistema. Enfim, independente das razões, acontece que um destes produtos precisará ser substituído. O utilizador deverá ser capaz de buscá-lo no sistema e proceder com a substituição com tranquilidade.

Entretanto, o que o usuário final não sabe é como as coisas acontecem nos bastidores. O que permite que ele realize esta simples operação sem se deparar com percalços pelo caminho.

Em outras palavras, o que acontecerá é que um novo objeto irá substituir um objeto já existente na lista e o mesmo está localizado em determinada posição/índice. Ou seja, você não estará inserindo um novo item, mas substituindo um já existente.

LISTA: IMPLEMENTANDO A SUBSTITUIÇÃO

Dentro do laço de repetição for que percorre a lista de alunos pelo índice precisaremos de uma instrução que nos permita busca por um determinado item. Neste caso um aluno específico, e substituí-lo por outro.

Se o nome do aluno em determinada posição for igual ao nome informado, um novo objeto receberá o novo aluno. A título de verificação, o conteúdo da nova variável irá receber uma mensagem.

É importante atentar para o fato de que ao substituir um item em uma lista, tudo o que está dentro deste objeto/item também será substituído. Desse modo, será necessário iniciar um objeto Disciplina(). No contexto do nosso exemplo, como estamos simulando a substituição de itens em uma lista, a inserção de novas disciplinas será feita manualmente. E por novas disciplinas, considere as disciplinas que irão substituir as que pertenciam ao aluno que foi substituído.

Na sequência, iremos resgatar a lista de disciplinas para adicionar a ela os itens correspondentes ao novo aluno, ou seja, as disciplinas.

E por fim, iremos de fato proceder com a substituição, a partir da implementação desta linha de código.

alunos.set(pos, trocar);

Foi necessário conhecer/informar a posição que o objeto ocupa na lista. Analise comigo, dentro da lista de alunos foi preciso informar que dentro de dada posição (pos) seria efetuada a substituição do item/aluno existente por um novo item. No caso, o aluno representado pela variável (trocar).

Precisamos agora fazer com que a variável que recebeu os dados do aluno anterior (o que será substituído) receba os dados do aluno que irá substituí-lo. Em resumo, método get de uma lista recuperará um elemento específico de acordo com o índice (pos) informado por parâmetro.

No momento da execução do algoritmo, iremos informar o nome do aluno que é condição estabelecida para ocorrer a substituição.

A saída é mostrada abaixo:

EM POUCAS PALAVRAS

O que aprendemos hoje, embora seja uma simulação é de grande importância. E espero que tenha ficado claro, o porquê de ser necessário percorrer a lista pela posição. Bem cono a utilização dos recursos do Java Collections, principalmente no que diz respeito as listas.

A cada iteração do laço de repetição “for”, isto é, a cada vez que ele é percorrido, é atribuída a variável aluno, um objeto do tipo aluno, correspondente ao indicie que está armazenando a variável de controle “pos”. Agora é a sua vez de repetir o processo, e o faça consciente de porque está tomando esta ou aquela decisão.

Pratique. Pratique. Pratique! E quando cansar, pratique mais um pouco, mas obviamente depois de tirar um tempo para si. Exercite-se, alimente bem. E volte com toda a disposição para se dedicar a sua jornada de se tornar um ótimo programador. Te vejo no próximo tutorial onde falaremos um pouco mais sobre listas.