segunda-feira, 16 de agosto de 2010

PriorityQueue - Coleções

Este post tem o intuito de descrever um pouco de uma das coleções, conhecida com Fila.
Filas são estruturas de dados que servem/podem armazenar informações/elementos seguindo uma ordem lógica de inserção/remoção.
Em Java não existe uma interface de filas de prioridades. Porém existe a classe PriorityQueue que estende a interface Queue.
O curioso que, esta classe não segue os padrões de inserção (FIFOs), o elementos são adicionados seguindo a sua prioridade, determinado pelo objeto comparador.
- PriorityQueue.poll() = retorna sempre o menor elemento(de acordo com o comparador )
- Aceita valores duplicados.
- Não usar o comparador com objetos não classificáveis gera excessão ao tentar adicionar elementos.

Exemplo:
PriorityQueue pq = new PriorityQueue();
pq.add("carrot");
pq.add("appel");
pq.add("banana");

System.out.println(pq.poll() + " - " + pq.peek());

Resultado: appel - banana

Nenhum comentário:

Postar um comentário