Salve a tutti,
devo realizzare questo metodo:
public static Veicolo[] veicoliLusso(Veicolo[] veicoli) che, data una lista veicoli di oggetti di classe Veicolo, restituisce l’insieme degli elementi v di veicoli che hanno più di 5 posti o la cui tassa di circolazione sia superiore a 500.
Lasciando perdere il contesto generale in cui andrebbe implementato il metodo, ho bisogno di un aiuto più tecnico.
Il metodo l'ho realizzato così:
public static Veicolo[] veicoliLusso(Veicolo[] veicoli)
{
int dim = 0, j = 0;
Veicolo[] ris;
for(int i = 0; i < veicoli.length; i++)
{
if(veicoli[i].numeroPosti() > 5 || veicoli[i].tassaCircolazione() > 500)
dim++;
}
ris = new Veicolo[dim];
for(int i = 0; i < veicoli.length; i++)
{
if(veicoli[i].numeroPosti() > 5 || veicoli[i].tassaCircolazione() > 500)
{
ris[j] = veicoli[i];
j++;
}
}
return ris;
}
Come potete vedere eseguo due cicli for sull'array
veicoli. Il primo, per conoscere la dimensione che dovrà avere l'array
ris che il metodo dovrà ritornare ed il secondo per caricarlo.
Volevo chiedervi se potesse essere possibile aumentare la dimensione di
ris sul momento, senza eseguire il primo ciclo for per conoscere la dimensione. Una sorta di
realloc in C (?).
Grazie