Queue[RESOLVIDO]

5 respostas
aajjbb

Estou dando uma varrida pelos “Java Tutorials” pelo site da sun, e deparei com essa Queue, li, reli novamente, mas ainda ficou um pouco abstrato na mente, alguem poderia me dar definições de onde deve ser usado, e tambem, qual as vantangens comparadas a List e ArrayList

5 Respostas

E

Uma Queue (Fila) é uma forma de visualizar uma List, de modo que você tenha acesso às operações de “enfileirar” e “desenfileirar” alguma coisa.

Não é que há uma “vantagem” ou “desvantagem”; acho irritante perguntarem “o que é melhor”, como se alguma coisa fosse sempre melhor em todos os casos. Uma Queue (fila) é mais adequada, obviamente, onde você precisa de uma fila.

aajjbb

ok, posso ter me expressado mal, nao foi o objetivo saber qual é o melhor, mas sim, vantagens e desvantagens de cada uma.

E

Uma Queue deve ser usada onde você precisa de uma fila do tipo “Primeiro a Entrar, Primeiro a Sair” (também chamada como “FIFO”).

Acho que você deve conhecer essas filas melhor que eu - pense em uma fila no caixa (sem ter nenhum idoso ou gestante ou furador de filas no meio). Não estou me referindo a uma fila no ponto de ônibus, que tais filas são na verdade uma bagunça - já que vários ônibus, com vários itinerários, atendem à mesma fila, e acaba saindo da ordem porque tem sempre um espertinho que tenta passar na sua frente (isso se você não lhe der uma peixeirada :slight_smile: )

Por exemplo, em programação você pode ter 2 threads ou mais que estão ligadas entre si por uma fila. Uma ou mais threads solicitam pedidos, e uma ou mais threads atendem aos pedidos.
Para ser justo, os pedidos devem ser atendidos por ordem de chegada (primeiro a pedir = primeiro a ser atendido), e isso é feito com uma fila (a rigor, com uma java.util.concurrent.BlockingQueue, que estende Queue).

Se você precisa de um outro tipo de fila, onde alguém pode passar na sua frente porque é idoso ou gestante, então você precisa de uma “PriorityQueue”. Nesse caso, esse tipo de fila é muito parecido com uma Queue, mas se a prioridade for maior (ou seja, o valor do indicador de prioridade for menor), então passa na frente.

E

Há um outro tipo de fila também, chamada de “Deque”. Nesse tipo de fila, pode-se entrar na frente ou atrás da fila, e pode-se sair da frente ou de trás da fila. O que você não pode fazer é entrar no meio ou sair do meio da fila.

aajjbb

Obrigado cara, bem esclarecedor.

Criado 26 de julho de 2010
Ultima resposta 26 de jul. de 2010
Respostas 5
Participantes 2