Implementação de Listas,Pilhas e Filas
Implementação de Listas, Pilhas e Filas usando classes da System.Collection.Generics em Visual Basic.Net 2005
Artigos .NET Implementação de Listas,Pilhas e Filas
Os tipos genéricos(Generics) possuem como proposito a criação de conjuntos que tenha consistência de tipos. Dessa forma podemos usar várias classes implementadas por essa namespace, em particular a classe List que irei relatar nesse artigo. A classe List quando declarada possuirá um tipo especifico e o compilador garantirá a consistência de tipos. Uma List funciona como uma matriz, cujo tamanho é aumentado dinamicamente quando necessário, dessa forma quando criamos um objeto List não precisamos definir quantos objetos ele conterá. Os objetos do tipo List, possuem várias propriedades e métodos, nos quais citarei alguns:
Capacity : quantidade de elementos que uma List pode conter
Count : quantidade de elementos atualmente na matriz
Add : método público para inclusão de um objeto em List
Clear : remove todos os elementos de List
Exists : determina se um elemento existe em List
Sort : Ordena a list
Remove: remove a primeira ocorrencia de um objeto especifico
Reverse : inverte a ordem dos elementos
To array: copia os elementos de List em uma nova matriz
Para exemplificar a teoria acima, irei apresentar o seguinte código abaixo:
Console.WriteLine("ID = " & listaDeClientes(i).ID & vbNewLine & "Nome = " & listaDeClientes(i).Nome)
Uma Fila, representa um conjunto do tipo onde o primeiro a entrar é o primeiro a sair, é como se fizéssemos uma analogia com uma fila de banco onde o primeiro cliente deve ser o primeiro a sair dela para ser atendido. Vejamos abaixo alguns métodos e propriedades de uma fila:
Dequeue: remove e retorna o objeto do inicio da fils
Por outro lado, uma pilha é um conjunto do tipo onde o último a entrar é o primeiro a sair, tomando um exemplo real é como se tivéssemos uma pilha de pratos da feijoada do domingo para lavar, dessa forma o último prato adicionado será o primeiro a sair dela para ser lavado. Uma pilha possui métodos semelhantes a de uma fila, sendo que os dois principais são os métodos PUSH e POP respectivamente utilizado para inclusão e remoção de objetos na pilha.
Dim filaDeClientes As New Queue(Of Cliente) cria um objeto do tipo fila de cliente
While enuFila.MoveNext
Console.WriteLine("ID = " & enuFila.Current.ID & " Nome = " & enuFila.Current.Nome)
Dim pilhaDeClientes As New Stack(Of Cliente) cria um objeto do tipo pilha de cliente
Console.WriteLine("Pilha de Clientes" & vbNewLine)
pilhaDeClientes.Push(New Cliente(i, "Regilan")) adiciona clientes a pilha de cliente
Dim enuPilha As IEnumerator(Of Cliente)
enuPilha = pilhaDeClientes.GetEnumerator retorna um enumerador para a cole‡Æo de pilha cliente
While enuPilha.MoveNext
Console.WriteLine("ID = " & enuPilha.Current.ID & " Nome = " & enuPilha.Current.Nome)
Essas são algumas das classes implementadas pela System.Collections.Generics que possuem outras clases como LinkedList, HashTable, entre outras.