Este projeto consiste na criação manual de uma estrutura de dados Fila implementada na classe Fila<T>, que utiliza a classe No<T> para representar cada elemento da fila.
Os principais métodos implementados na classe Fila<T> são:
enqueue: para inserir um elemento na filadequeue: para remover o primeiro elemento da filafirst: para exibir o primeiro elemento da fila sem removê-loisEmpty: para verificar se a fila está vaziatoString: para retornar uma representação em string da fila.
O uso de Generics no projeto permitiu que a instância do objeto fosse amarrada a um tipo de dado específico, tornando o código mais seguro e legível, e possibilitando a reutilização de código em diferentes tipos de dados sem a necessidade de repetição de código. Além disso, a utilização de Generics ajudou a evitar erros de casting e a melhorar a performance do projeto.
O projeto contém um exemplo de utilização da Fila<String> e Fila<Integer>, onde são adicionados elementos e o primeiro elemento é removido.