Buonasera a tutti,
sto preparando un esame e nello svolgere questo esercizio ho riscontrato qualche difficoltà. La richiesta è la seguente: dato un array di 4 razze di animali (intese come gatto, cane, ) implementare un metodo statico che restituisce quello con razza avente nome massimo, se non esiste restituisce null.
Dal punto di vista sintattico il codice sembra corretto, deve sfuggirmi qualcosa nell'implementazione del metodo " trovaAnimaleMaxRazza" perché l'output risulta errato.
Inoltre chiedo un chiarimento sull'override del metodo compareTo quando il campo considerato è una stringa. Come ho fatto io è corretto?
Ringrazio in anticipo per l'aiuto.
Vi allego il codice scritto da me:
sto preparando un esame e nello svolgere questo esercizio ho riscontrato qualche difficoltà. La richiesta è la seguente: dato un array di 4 razze di animali (intese come gatto, cane, ) implementare un metodo statico che restituisce quello con razza avente nome massimo, se non esiste restituisce null.
Dal punto di vista sintattico il codice sembra corretto, deve sfuggirmi qualcosa nell'implementazione del metodo " trovaAnimaleMaxRazza" perché l'output risulta errato.
Inoltre chiedo un chiarimento sull'override del metodo compareTo quando il campo considerato è una stringa. Come ho fatto io è corretto?
Ringrazio in anticipo per l'aiuto.
Vi allego il codice scritto da me:
Codice:
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Animale a1 = new Animale("gatto");
Animale a2 = new Animale("leone");
Animale a3 = new Animale("rinoceronte");
Animale a4 = new Animale("rinoceronte");
Animale[] vet = new Animale[] {a1, a2, a3, a4};
System.out.println("razza max è: " + trovaAnimaleMaxRazza(vet));
}
private static String trovaAnimaleMaxRazza(Animale[] vet) {
int uguali = 0; //variabile per capire se ci sono razze di uguale lunghezza
int p = 0;
String maxLength = null;
if(vet.length > 0) {
for (int i=0; i<vet.length; i++){
if (vet[i].getRazza().length() > vet[p].getRazza().length()){
maxLength = vet[i].getRazza();
uguali=0;
}
else if (vet[i].getRazza().length() == vet[p].getRazza().length()){
uguali++;
}
}
}
if (uguali == 0)
return maxLength;
else return null;
}
}
class Animale implements Comparable<Animale> {
public String getRazza() {
return razza;
}
public void setRazza(String razza) {
this.razza = razza;
}
public Animale(String razza) {
this.razza = razza;
}
String razza;
@Override
public int compareTo(Animale o) {
return 0;
}
}
Allegati
Ultima modifica: