Ciao a tutti, devo copiare gli elementi di una lista contenente coppie di candidati in una coda a priorità in cui gli elementi siano ordinati in ordine di rango.

Ho scritto una classe Candidate:

codice:
public class Candidate extends ObjectAbstract {   
private int rank;    
private String candidateParent;     
private String id;
una classe PairCandidate:

codice:
public class PairCandidate implements Comparable {      
private Candidate c1;     
private Candidate c2;     
private int rank;      
    
public PairCandidate(Candidate c1, Candidate c2, int rank) {         
this.c1 = c1;         
this.c2 = c2;         
this.rank = rank;     }      

public int compareTo(Object pair) {         
int rank1 = this.getRank();        
int rank2 = ((PairCandidate) pair).getRank();         
Integer r1 = new Integer(rank1);
Integer r2 = new Integer(rank2);
return r1.compareTo(r2);       }
A questo punto copio la lista contenente elementi PairCandidate nella coda:

codice:
 
PriorityQueue<PairCandidate> open; open = new PriorityQueue<PairCandidate>(listPair);
Il problema è che alcuni elementi sono ordinati altri no. Dove può essere il problema ?
Grazieeeeee