Olá pessoal,
estava tentando implementar um fila fifo usando queue, entretanto os métodos pool removia apenas o ultimo elemento.
Existe algo pronto que realmente implemente uma fila FiFo ?
valeu
Olá pessoal,
estava tentando implementar um fila fifo usando queue, entretanto os métodos pool removia apenas o ultimo elemento.
Existe algo pronto que realmente implemente uma fila FiFo ?
valeu
http://www.uni-muenster.de/ZIV.BennoSueselbeck/java/jdk1.5.0_01/docs/api/java/util/Queue.html
A interface Queue tem implementações FIFO, ou seja, o primeiro elemento a entrar é o primeiro a sair
veja a descrição da interface na API, e escolha sabiamente qual imlementação usar para o seu problema.
usa LinkedList, como no exemplo abaixo:
public static void main(String[] args) {
Queue<String> fila = new LinkedList<String>();
fila.add("a");
fila.add("b");
fila.add("c");
fila.add("d");
for (String s: fila){
System.out.println("elemento: "+s);
}
System.out.println();//pula uma linha
while(fila.size() != 0){
System.out.println(" item:"+fila.poll());
}
fila.add("e");
fila.add("f");
fila.add("g");
fila.add("h");
System.out.println();//outra
for (int i=0; i<=fila.size();i++){
System.out.println(" item:"+fila.poll());
}
System.out.println("tamanho da fila: "+fila.size());
}
confesso que estranhei nesse exemplo quando fui rodar pra testar, que o ultimo for não pego o ultimo elemento que estava na fila, isso ainda por que eu coloquei <= la no for… bom de qualquer jeito acho que isso responde sua duvida… se por um acaso você tiver algum interesse em usar como lifo, crie o linkedList da forma abaixo:
LinkedList<String> fila = new LinkedList<String>();
e quando for iterar faça os eguinte:
Collections.reverse(fila);//esse cara infelizmente só aceita listas...