Esatto, un array deve avere una propria dimensione, si poteva anche creare un array di grandi dimensioni (un tipo primitivo non può essere null e di default l'array conterrebbe tutti i valori a 0 nel caso di int, ma in generale questa soluzione ti costringe a controllare che a una certa posizione il valore non sia null nel caso di un array di Object o derivati) ma la lista è sicuramente la soluzione migliore e più elegante.
Ok per Integer, un ArrayList in effetti non può contenere tipi primitivi, ma non è proprio corretto dire che Integer trasformi un intero in un oggetto, è solo una classe che funziona da contenitore e incapsula al proprio interno un campo int, fornendo vari metodi di utilità (inoltre grazie all'autoboxing java consente di trattare i tipi primitivi come se fossero le proprie corrispondenti classi contenitori in diverse parti, quindi tu stai ad esempio aggiungendo degli int alla lista senza dover passare per Integer.valueOf (int number) o per il costruttore di Integer).
Il codice sembra andare bene, potevi trovare il massimo direttamente a partire dalla lista senza trasformarla in array, ma non è sbagliato.
Basta prendere l'elemento all'indice i richiamando il metodo get (i) invece di usare le parentesi quadre.
Puoi anche utilizzare il costrutto for-each, che è molto comodo e snellisce il codice:
codice:for (int number : list) { // non serve il metodo get o usare le parentesi, il loop prende ogni elemento della lista e lo assegna alla variabile locale number }
Solo un piccolissimo particolare: se invece che inizializzare highestAge a un valore volutamente basso e poi ciclare su tutto l'array o la lista scegli di porlo già uguale al primo valore, il che è una bella cosa, quando fai il ciclo non serve ricominciare da 0, parti direttamente dall'indice 1.
Cosa intendi con implementarlo con la traccia proposta? Hai risolto già quanto viene chiesto, hai fatto solo una cosa in più non richiesta, ovvero memorizzare tutti i valori, ma va bene.
Se ti riferisci all'esempio con Interfaccia e le altre classi di cui parlavi sopra, non hai parlato di altre consegne ...


Rispondi quotando

