Boa noite,
Estava tentando resolver uma questão mas não consegui entender a lógica dela
Given that the elements of a PriorityQueue are ordered according to natural ordering,
and:
import java.util.*;
public class GetInLine {
public static void main(String[] args) {
PriorityQueue<String> pq = new PriorityQueue<String>();
pq.add("banana");
pq.add("pear");
pq.add("apple");
System.out.println(pq.poll() + " " + pq.peek());
}
}
What is the result?
A. apple pear
B. banana pear
C. apple apple
D. apple banana
E. banana banana
O meu resultado deu pear e banana. Alguém poderia me explicar a mágica
?
Obrigado !
Ue , tem certeza??? a principio a resposta seria a letra D , qual a resposta da questão?? ?
PriorityQueue ordena os itens de maneira natural A,B,c ou 1,2,3 … O metodo poll () recupera e remove o elemento da cabeça , o metodo peek() recupera e não remove o elemento da cabeça .
[quote=alexmonassa]Ue , tem certeza??? a principio a resposta seria a letra D , qual a resposta da questão?? ?
PriorityQueue ordena os itens de maneira natural A,B,c ou 1,2,3 … O metodo poll () recupera e remove o elemento da cabeça , o metodo peek() recupera e não remove o elemento da cabeça .
[/quote]
Sim, desculpa. A resposta correta é D. A minha deu o resultado comentado acima.
Então posso considera-la como uma pilha ordenada ? de ordem natural? E caso seja inserido objetos que não implements Comparable ? Como será sorteada ?
Obrigado !
Temos q ver isso , tá estranho qual a versão do seu Java??
Não necessariamente, pilha é quando há aquele tipo de controle da seguinte forma: ultimo que entra é o primeiro que sai , na verdade ela poderia ser considerada mais próximo de uma fila . Só que com uma fila com prioridades.
Ai é vc q tera q implementar o comparable ou o comparator. Daí vc escolhe como irá classificar os elementos através da sua implementação (De uma dessas duas interfaces) .
De nada.
Parece bem simples o ultimo item da fila pear (pq.poll()), foi removido e mostrado, depois quando deu pq.peek() mostrou banana e nao removeu.
http://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html
[quote=Gianetti]Parece bem simples o ultimo item da fila pear (pq.poll()), foi removido e mostrado, depois quando deu pq.peek() mostrou banana e nao removeu.
http://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html[/quote]
Na vdd o pq.poll() remove o primeiro (Cabeça ) da fila? é isso que diz a documentação que vc indicou . Então o removido seria apple.