[quote=banryu79;29641606][quote=cybergabry;29640287]
Il warning è: "Comparable is a raw type. References to generic type Comparable<T> should be parameterized"
[quote]
Non preoccuparti di questo warning, per il momento, il tuo codice è sintatticamente corretto.
Se sei curioso, una spegazione del warning la trovi in
questo post.
[quote=cybergabry;29640287]
In effetti il programmino non funziona perchè mi dice sempre che l'elemento non è presente nell'array anche quando invece è presente.
Quote:
Ho letto al volo e ho notato questo:
Codice:
public static int binario (Comparable arr[], Comparable elem, int inizio, int fine)
{
int centro = (inizio + fine)/2;
if (inizio > fine)
return -1;
else if (elem == arr[centro])
return centro;
else if (elem.compareTo(arr[centro]) > 0)
return binario (arr, elem, centro+1, fine);
else
return binario (arr, elem, inizio, centro-1);
}
}
se vuoi verificare l'uguaglianza tra due Comparable devi passarne uno come argomento al metodo compateTo dell'altro: se l'output restituito è zero allora sono considerati equivalenti (in termini di ordinamento).
Codice:
if (elem.compareTo(arr[centro]) == 0)
|
Grazie di tutto ho fatto come hai detto ed ho risolto. Ora vado a leggere il documento sui warning che mi hai linkato. Grazie ancora e arrivederci