Ferramentas de Utilizador

Ferramentas de Site


dev_net:vb.net:implementando_um_fifo

Tabela de Conteúdos

Implementando um FIFO

O namespace System.Collections.Generic possui uma classe que permite implementar, de uma forma muito simples, um FIFO (first-in, first-out). Este método é muito útil em diversas aplicações (ex: produtos numa linha de produção, buffers, etc), mas também para manter os últimos registos de algo.

Para mostrar a utilização desta colecção, Queue, será mostada criada uma pequena lista de itens e depois será removido um e inserido outro. Um exemplo simples mas certamente muito útil.

Exemplo

    ''' <summary>
    ''' Mostra os items que estão na lista
    ''' </summary>
    Sub showList(ByVal fifoList As Queue(Of String))
        For x As Byte = 0 To fifoList.Count - 1
            Debug.WriteLine(fifoList(x).ToString)
        Next
    End Sub
 
 
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
        Dim fifo As New Queue(Of String)
 
        ' Adiciona itens ao fifo através do método Enqueue()
        For x As Byte = 0 To 9
            fifo.Enqueue("Item " & x)
        Next
 
        ' Mostra os dados actuais
        showList(fifo)
        Stop
 
 
        ' ------------------------------------------
        ' OUTPUT (Immediate Window):
        ' ------------------------------------------
        ' Item 0
        ' Item 1
        ' Item 2
        ' Item 3
        ' Item 4
        ' Item 5
        ' Item 6
        ' Item 7
        ' Item 8
        ' Item 9
 
 
        ' Informação do item que vai sair da lista
        Dim fifoNextToLeave As String = fifo.Peek
        Debug.WriteLine("Próximo item a sair: " & fifoNextToLeave)
 
 
        ' ------------------------------------------
        ' OUTPUT (Immediate Window):
        ' ------------------------------------------
        ' Próximo item a sair: Item 0
        ' Remove um item da lista (por ordem) e guarda
        '  a informação numa variável que será mostrada
 
        Dim fifoOut As String = fifo.Dequeue()
        Debug.WriteLine("Item removido: " & fifoOut)
 
 
        ' Adiciona um novo item para manter o mesmo número de itens
        fifo.Enqueue("Item 10")
 
        ' Mostra os dados finais
        showList(fifo)
        Stop
 
 
        ' ------------------------------------------
        ' OUTPUT (Immediate Window):
        ' ------------------------------------------
        ' Item 1
        ' Item 2
        ' Item 3
        ' Item 4
        ' Item 5
        ' Item 6
        ' Item 7
        ' Item 8
        ' Item 9
        ' Item 10
 
        ' Limpa todos os resultados da lista
        fifo.Clear()
 
    End Sub

Autoria

Este artigo foi inicialmente escrito por Jorge Paulino para o seu blog VBTuga - Visual Basic em Português.

dev_net/vb.net/implementando_um_fifo.txt · Esta página foi modificada pela última vez em: 2018/05/14 21:37 (Edição externa)