Minnie ha scritto:
l'override del compareTo è corretto?
Sì è corretto, con l'unica svista che hai scritto getkm invece di getKm (che è il nome corretto del metodo).
Hai passato un campo e il ritorno di un metodo. In questi casi meglio essere più simmetrici:
return Double.compare(getKm(), a.getKm());
o se vuoi proprio esplicitare il
this (che sarebbe superfluo):
return Double.compare(this.getKm(), a.getKm());
Minnie ha scritto:
Altri errori sono nell'implementazione dei metodi, un array si conta a partire da posizione 0 a length-1 ma ciò mi da errori nell'output: come valore massimo mi restituisce 18.3 invece di 19.2 e anche la somma non è corretta.
Il trovaAutoPiuVecchia l'hai fatto più complicato di quello che servirebbe (non serve quel pMin !).
Il sommaAutoKm è "quasi" corretto. La condizione del for dà un ciclo in meno. Se controlli l'indice per < è sufficiente che sia minore del length.
Ovvero, basta: i<p.length
Non: i<p.length-1
Il test del p.length > 0 di per sé non servirebbe (c'è già il for che "protegge" su questo). Semmai, in ottica generale, si potrebbe testare che il reference ricevuto non sia null.