Tengo una Cola de prioridades en la que agrego un objeto Node, donde los Nodos deben ordenarse por un valor que contienen. Por alguna razón, la cola de prioridad no ordenará los Nodos en agregar. Si alguien puede ver algo mal con esto o tiene alguna guía, lo agradezco. He aquí un breve ejemplo:PriorityQueue no sorting on add
PriorityQueue<Node> PQ = new PriorityQueue<Node>();
//for each entry create a node and add it to the PriorityQueue
for(Entry<Character,Integer> entry : entries){
PQ.add(new Node(entry.getKey(),entry.getValue(), true));
}
aquí es compareTo
método del nodo:
@Override
public int compareTo(Node n) {
if(n.frequency.intValue() > this.frequency.intValue()) return -1;
else if(n.frequency.intValue() == this.frequency.intValue()) return 0;
else return 1;
}
Correcto, pero espero que esté ordenado al eliminar cada objeto utilizando el método remove() –
@Trevor: No ha mostrado el código de iteración. Actualice su pregunta para mostrar un espectáculo pero el ejemplo * completo *, que podemos compilar y ejecutar. –
No importa, ahora me doy cuenta de que en remove() el objeto está ordenado. Gracias a todos –