Primeiras aulas do curso VB.NET com Windows Forms Parte 8: Listas, listas ligadas, dicionários e conjuntos

VB.NET com Windows Forms Parte 8: Listas, listas ligadas, dicionários e conjuntos

Lista e coleções flexíveis - Introdução

Oi, tudo bem? Meu nome é Victorino Vila e muito obrigado por estar assistindo mais um curso de visual basic dotnet. Nesse treinamento, vamos dar ênfase a uma estrutura genérica que chamamos de collection, ou coleções. Vimos no curso passado sobre arrays, que também são um tipo de collection, vimos que eles possuem algumas limitações, como tamanho previamente definido. Até construímos no curso passado uma classe que criava um array genérico, que crescia na medida em que fôssemos necessitando de mais elementos.

Só que o array é um exemplo de collection, mas não é o único que existe dentro do mundo do visual basic dotnet. Temos diversos outros tipos de coleções que possuem suas características próprias. Por exemplo, temos coleções que trabalham como um empilhamento, em que inserimos um membro pelo topo, e quando retiramos também ele sairá pelo topo.

Temos também coleções do tipo fila, como uma fila de carros. Quando insiro um elemento dessa coleção, sempre ele vai entrar pelo final. Quando eu retirar, ele vai sair pela frente. Temos coleções em que definimos a ordem com que os elementos vão estar organizados, ou que possuem um índice de busca que facilita saber onde está o elemento. Também temos coleções genéricas, em que não nos preocupamos com tamanho, conseguimos inserir e colocar elementos em qualquer lugar.

Ou seja, toda aquela história de array que vimos no curso anterior pode ser expandida para uma série de outros tipos de estruturas que agregam informações em determinado vetor e que são super úteis no desenvolvimento de aplicações.

Nesse curso, vamos ver uma gama enorme de tipos de coleções diferentes que podemos encontrar no visual basic dotnet. Aproveitando o conhecimento que vamos adquirir com as coleções, vamos terminar esse treinamento fazendo mais um aplicativo do nosso banco Bytebank. Vamos construir um simulador de filas de atendimento de uma agência. Baseado em determinados parâmetros que vamos entrar na nossa aplicação, podemos fazer uma simulação em que eu estaria simulando o atendimento de clientes que estão entrando no banco e sendo atendidos.

Esse tipo de aplicação irá utilizar as coleções que veremos em vários capítulos a partir daqui. Espero que gostem do treinamento e que o conhecimento de vocês em visual basic dotnet tenha um upgrade muito grande depois do final. Muito obrigado e vamos nessa.

Lista e coleções flexíveis - Listas

Vamos continuar estudando? No link inicial desse curso existe um projeto em visual studio que você tem que baixar na sua máquina. Dentro do diretório Bytebank, vamos ter o Bytebank.sln, que é a solução do projeto. Podem abrir o visual studio, executar o projeto e nós continuaremos o curso a partir desse ponto.

Esse projeto pega tudo que fizemos no curso anterior. Ou seja, vou executar, tenho um formulário. Quando clico em arquivo, contas correntes array, tenho uma tela que fizemos no final do curso anterior, para adicionar e remover contas.

Relembrando, nós utilizamos uma variável lista, que é do tipo lista de contas correntes, foi uma classe que implementamos usando aqueles parâmetros genéricos. Ou seja, uma classe genérica. Onde coloco uma variável T, de tipo, e posso usar esse tipo dependendo de com que quero trabalhar.

Essa classe tem um array interno, que conseguimos aumentar o número de casas que vamos preencher à medida que adicionarmos novos elementos. Também temos a capacidade de remover itens do array, e podemos adicionar vários elementos um a um através de um parâmetro do tipo paramArray.

Dizem que para aprendermos a multiplicar temos que aprender a somar direito primeiro. Criamos uma classe chamada lista, que trabalha com array sem direcionamentos, mas esse tipo de coisa se usa muito. Isso significa que vou ter que guardar essa classe lista em todo projeto? A resposta é não, porque na verdade o objetivo do curso passado foi entender bastante array. Usamos o exemplo da criação dessa classe lista genérica, porém o dotnet possui já uma classe lista implementada. Ou seja, temos uma estrutura chamada collection.

As collections são listas em que previamente não me preocupo com o tamanho. Por detrás elas são arrays e fazem algo muito parecido com o que implementamos no curso passado. Ele vai criando arrays dinâmicos, vamos inserir elementos ou tirar elementos. Podemos trabalhar com essa classe específica que já está presente no dotnet framework.

Significa que o curso passado foi uma perda de tempo? Não, porque com esse exemplo da criação da classe aprendemos muito sobre array. E o array em si é muito utilizado. Não é porque existe a classe lista que vamos desprezar o uso do array.

Para não perdermos o que fizemos usando a classe lista genérica, vamos no outro formulário, frm.contasCorrentesListas, que aparentemente faz a mesma coisa que o formulário contas correntes array. Temos códigos iguais nos dois.

Vou nesse código onde tenho dim lista as new lista of conta corrente e vou declarar essa variável de forma diferente. Vou chamar lista as new list of. Ao usar o termo em inglês, ele automaticamente escreveu a palavra of. Depois coloco o conta corrente. Note a diferença. Em cima estou usando a classe que criamos e embaixo a classe list do framework.

Se eu for na definição, tenho que é uma classe genérica que tem uma série de métodos que veremos no decorrer do curso.

Eu gerei uma série de erros, porque os métodos que implementamos na classe lista não existem na classe list. Ela costuma usar métodos com nomes em inglês. Por exemplo, onde tenho adicionar vou trocar por add. Note que o erro some. Onde tenho remover, posso usar remove. Onde tenho tamanho, vou usar count, que me traz o número de ocorrências que existem na lista.

Temos ainda o método adicionar um a um, mas por enquanto nesse vídeo vou comentar todo o código desse botão. Vamos executar os dois códigos, um usando minha classe e um usando a do framework. As duas funcionam.

Temos a implementação da nossa classe lista, mas usando list. Chamamos essa classe de coleção, ou collection, que vai ser o tema deste treinamento.

Lista e coleções flexíveis - Usando o AddRange

Já substituímos o método adicionar e remover pelo add e remove, mas temos o adicionar vários um a um, que comentamos inicialmente para o programa funcionar. Será que tenho um método que faz a adição de um conjunto de elementos dentro da lista de uma só vez?

A melhor maneira é ver quais métodos e funções tenho disponíveis. Se eu digitar lista. tenho vários métodos que pelo nome em inglês posso supor que o elemento é melhor que outro para ser usado, mas se eu olhar o add, tenho um método chamado addRange. Se eu olhar os parâmetros, ele passa como parâmetro um range, uma collection. Ou seja, é como se eu tivesse uma pequena lista de elementos e passo como parâmetro essa própria lista.

Para substituirmos essa função de adicionar vários, vou usar dim listaTemporaria as new list of conta corrente. A cada conta que eu obter, vou adicionando a essa lista temporária. Quando eu texto se existe agência e conta para a variável conta1, vou colocar um add conta1. Se eu tiver um código e conta para a conta2, vou também adicionar a conta2. E assim por diante.

Na minha variável lista, ao invés de usar adicionar vários um a um, vou usar o addRange e vou colocar como parâmetro a lista temporária. Agora tenho a implementação da adição da minha lista de um conjunto de contas em cima do formulário.

Executando o código, tudo certo. Consegui através desse método addRange da classe list colocar dentro da minha lista um conjunto de contas. Usei outra lista temporária para popular valores dentro dela, e ela uso como parâmetro para lista.addRange.

Sobre o curso VB.NET com Windows Forms Parte 8: Listas, listas ligadas, dicionários e conjuntos

O curso VB.NET com Windows Forms Parte 8: Listas, listas ligadas, dicionários e conjuntos possui 407 minutos de vídeos, em um total de 70 atividades. Gostou? Conheça nossos outros cursos de .NET em Programação, ou leia nossos artigos de Programação.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda .NET acessando integralmente esse e outros cursos, comece hoje!

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?
Acesso por 1 ano
Estude 24h/dia onde e quando quiser
Novos cursos toda semana