Classes Stack, Queue e HashTable – Coleções: Estrutura da Linguagem – Parte 3

Veja neste artigo exemplos com as classes Stack, Queue e HashTable.

 Olá pessoal, neste artigo veremos conceitos e exemplos com as classes Stack, Queue e HashTable. Acompanhem:

 Stack – Esta classe permite a inclusão de elementos que são colocados em uma pilha. O elemento junta-se à pilha no topo e sai dela também a partir do topo. A Stack usa o sistema LIFO (last-in first-out), ou seja, “último a entrar, primeiro a sair”. Seus principais métodos são:

·Push – Coloca um item na pilha;

·Pop – Retira o último item da pilha e retorna uma referência a este objeto;

·Peek – Retorna o objeto que está no topo da pilha.

 Veja um exemplo prático com o uso da classe Stack:

Stack objPilha = new Stack();

objPilha.Push("Item 1");

objPilha.Push("Item 2");

objPilha.Push("Item 3");

 

//Item 2

string ultimoItem = objPilha.Pop().ToString();

 

//Item 1

ultimoItem = objPilha.Pop();

 Queue – Nesta classe, o elemento é inserido na parte de trás da fila. Esta operação é chamada de enfileiramento. Este mesmo elemento sai a partir da frente da fila, operação chamada de desenfileiramento. Esse procedimento de entrada e saída recebe o nome de fila, ou FIFO (first-in first-out), ou seja, “primeiro a entrar, primeiro a sair”. Seus métodos principais são:

·Enqueue – Coloca um item na fila;

·Dequeue – Retira o primeiro item da fila e retorna uma referência;

·Peek – Retorna o primeiro item.

 Veja um exemplo:

Queue objFila = new Queue();

objFila.Enqueue("A");

objFila.Enqueue("B");

objFila.Enqueue("Item 3");

 

string primeiroItem = objFila.Peek().ToString();

primeiroItem = objFila.Dequeue().ToString();

primeiroItem = objFila.Dequeue().ToString();

primeiroItem = objFila.Dequeue().ToString();

 HashTable – Esta classe permite fazer o que é geralmente denominado de array associativo, ou seja, mapear para um elemento um tipo diferente do inteiro(int), como time, double ou até string. O mapeamento de um índice de inteiro para um elemento é uma capacidade oferecida tanto pelo Array como pelo ArrayList.

 A classe HashTable aceita o uso do Foreach para o trabalho de iteração desta classe. Quando isso é feito, uma classe DictionaryEntry é retornada. Por meio dela, podemos usar as propriedades Value e Key a fim de acessar os elementos de valor e de chave em qualquer um dos dois arrays de objeto mantido internamente pelo HashTable.

 Seus principais métodos são:

·Add – Adiciona um item. Deve-se passar como parâmetro uma chave e seu valor. Tanto a chave como o valor podem ser objetos de qualquer tipo;

·ContainsKey – Retorna true se o HashTable contém uma chave específica;

·ContainsValue – Retorna true se o HashTable contém um valor específico.

 A principal propriedade é:

·Item – Esta é a propriedade default e retorna um elemento da coleção do tipo Dictionary Entry.

 A classe Dictionary Entry tem duas propriedades que vale o destaque:

·Key – A chave para localização do item na coleção.

·Value – O valor do item.

 Veja o exemplo a seguir usando HashTable:

Hashtable objTabela = new Hashtable();

objTabela.Add(1, "Joãozinho");

objTabela.Add(2, "Mariazinha");

 

foreach (DictionaryEntry item in objTabela)

{

Listbox1.Items.Add(item.Key + ":" + item.Value);

}

 

if (objTabela.ContainsKey(1))

{

Listbox1.Items.Add(objTabela[1]);

}

 

if (objTabela.ContainsValue("Joaõzinho"))

{

Listbox1.Items.Add("Joaõzinho foi encontrado!");

}

 Perceba que usamos um exemplo fictício, onde um determinado ListBox será preenchido com os dados do HashTable.

 Deixo como dica a vocês que pesquisem mais sobre Coleções e façam exemplos práticos com os tipos apresentados aqui.

 Fonte de Consulta: Apostila de C#, da Impacta Tecnologia.

 Assim finalizo o artigo. Muito obrigado a todos!

 Um abraço, e até o próximo artigo.

 Wellington Balbo de Camargo

 wellingtonbalbo@gmail.com

Artigos relacionados