Fila FIFO em Java
Uma fila é uma estrutura de dados linear que implementa o conceito primeiro a entrar, primeiro a sair. O conceito significa que os elementos que entram primeiro são os primeiros a sair.
Os termos técnicos para representar a Queue
estão usando as extremidades frontal e traseira. Os elementos são adicionados à Queue
por trás e são retirados pela frente.
O exemplo do mundo real do conceito é a fila do balcão de ingressos, onde a pessoa que está na primeira posição obtém o ingresso primeiro. Agora em Java, o conceito ou a estrutura de dados é implementado na interface Queue
. A interface está presente no pacote java.util
.
Abaixo está o bloco de código que demonstra a estrutura da fila.
package F10;
import java.util.LinkedList;
import java.util.Queue;
public class Main {
public static void main(String[] args) {
Queue queue = new LinkedList<String>();
queue.add("First");
queue.add("Second");
queue.add("third");
System.out.println("Created Queue: " + queue);
String value = (String) queue.remove();
System.out.println("The element deleted from the head is: " + value);
System.out.println("The queue after deletion: " + queue);
String head = (String) queue.peek();
System.out.println("The head of the present queue is: " + head);
int size = queue.size();
System.out.println("The size of the queue is: " + size);
}
}
Existem várias maneiras de implementar a estrutura de dados Queue
em Java. No bloco de código acima, o uso de LinkedList
implementa o conceito.
Primeiro, uma referência Queue
é instanciada usando a instrução new LinkedList
. O método add
está presente na interface Queue
, que insere o elemento especificado na Queue
. A função retorna booleano true
quando o valor é acrescentado.
O método pode lançar a IllegalStateException
quando o elemento não pode ser adicionado devido a restrições de tamanho. Ele também lança NullPointerException
quando o valor transmitido é nulo. Quando o conjunto inicial de elementos é anexado à lista, a Fila é impressa. A instrução System.out.println
pega a string que precisa ser impressa.
Em seguida, a função remove
é chamada na instância Queue
. Ele removerá o elemento presente no cabeçalho da Fila e, portanto, retornará o elemento principal.
Existe uma função poll
semelhante que também remove o elemento presente na cabeça. A única diferença está na função remove
que lança NoSuchElementException
quando a Fila está vazia. Os valores removidos são armazenados em uma variável e impressos. A fila restante é impressa para verificar os elementos restantes.
A função peek
recupera o elemento superior da Fila e não o remove; é uma forma de verificar o elemento na cabeça da Fila. A função retorna o valor principal e lança NoSuchElementException
quando a Fila está vazia. A função size
está presente na interface Collection
e retorna o tamanho da coleção. Portanto, este método imprime o tamanho dos elementos restantes na Fila.
Produção:
Created Queue: [First, Second, third]
The element deleted from the head is: First
The Queue after deletion: [Second, third]
The head of the present Queue is: Second
The size of the Queue is: 2
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn