Ragazzi ho un problema. Sto facendo una classe che misura il tempo per aggiungere dati, toglierli, cercarli, ecc. per alcune strutture dati; in questo caso sto analizzando la PriorityQueue.
Se passo alla struttura numeri interi , il struttura riesce a tenere ordinati in ordine crescente tutti i valori...ma ovviamente passandogli stringhe non ottengo lo stesso risultato!!.
Visto che la mia struttura deve poter accettare qualunque cosa, ho PROVATO (senza risultato) a ridefinire il metodo compare dell'interfaccia Comparator<E> solo che non riesco a implementarlo!!
Potete aiutarmi??
Vi posto il codice (la classe che estendo DataStruct e semplicemente una superclasse per tutte le strutture che andrò ad implementare)

codice:
import java.util.PriorityQueue;

public class StrPriorityQueue<E> extends DataStruct<E> implements Comparator<E>{
	
	PriorityQueue<E> struct;
	E valore;
	
	public StrPriorityQueue(){
		struct = new PriorityQueue<E>();
	}
	
	 public E get(E e){
		 E alfa = null;
		 double end = 0;
		 if(struct.contains(e)){
			 double start = System.nanoTime();
			 for(E i : struct){
				 if(e.equals(i)){
					 end = System.nanoTime();
					 alfa = i;
				 }
			}
			 tempGet = tempGet + (end - start);
			 return alfa;
		 }else{
	    		tempGet = tempGet + 0;
	    		return null;
	    	}
	    } 
	    
	 public boolean search(E e){
	  	   if(struct.contains(e)){
	  		   double start = System.nanoTime();
	  		   struct.contains(e);					//SERCH//
	  		   double end = System.nanoTime();
	  		   tempSearch = tempSearch + (end - start);
	  		   return true;
	  	   }else{
	  		   tempSearch = tempSearch + 0;
	  		   return false;
	  		   }
	 }
	     
	 public boolean add(E e){ 
		 valore = e;
		 double start = System.nanoTime();  
	  	 struct.add(e); 							//ADD//
	  	 double end = System.nanoTime();		
	  	 tempAdd = tempAdd + (end - start);
	  	 return true; 
	 }  
	     
	 public boolean delete(E e){ 
		 if(struct.contains(e)){ 
			 double start = System.nanoTime();
	  	     struct.remove(e); 					     //DELETE//
	  	     double end = System.nanoTime();
	  	     tempDelete = tempDelete + (end - start);
	  	     return true; 
		 }else{
			 tempDelete = tempDelete + 0;
	  	     return false;
	  	     }
	 }
  
	 /*public E getValue(){
		 return valore;
	 }*/

	 /*public int compare(E alfa, E beta) {
		if(alfa.getValue() < beta.getValue())
			return -1;
                 .......
                 .......
	}*/
}