Come aggiungere nuovi elementi ad un array ogni volta che viene richiamato un metodo

di il
1 risposte

Come aggiungere nuovi elementi ad un array ogni volta che viene richiamato un metodo

Salve,
sono una nuova iscritta e mi sto approcciando solo di recente al mondo della programmazione.
Mi è stato assegnato un esercizio che richiede di creare una classe Motorino con all'interno due metodi uno che aumenti la velocità e uno che la diminuisca e fin qui nessun problema. Poi mi si chiede di immagazzinare le varie velocità istantanee in un array (in pratica ho una velocità nuova ogni volta che richiamo uno dei due metodi).
Ora la mia domanda è come posso fare visto che non conosco il numero di volte e non posso dichiarare la dimensione dell'array?
Ps. ho cercato su internet e ho trovato arrayList ma non posso utilizzarlo perché il prof non lo ha ancora spiegato.
La if(vel.length==0)... mi è stata suggerita dal prof che ha poi detto ora nell'else dobbiamo immagazzinare tale valore perche poi andreno a sovrascrivere quello precedente. l'else ho provato a farlo io ma ovviamente funziona solo se richiamo il metodo non più di 2 volte. non so come fare
public boolean accelera(double accelerazione) {
		if(antifurto==false) {
			if(vIstantanea+accelerazione<=V_MAX) {
				vIstantanea+=accelerazione;
				if(vel.length==0) {
					vel=new double[1];
					vel[0]=vIstantanea;	
				}
				else {
					velocita=new double[vel.length+1];
					velocita[0]=vel[0];
					velocita[vel.length]=vIstantanea;
				}
			}
			return true;
		}
		else {

			return false;
		}
	}

1 Risposte

  • Re: Come aggiungere nuovi elementi ad un array ogni volta che viene richiamato un metodo

    Mel_c4f ha scritto:


    Ora la mia domanda è come posso fare visto che non conosco il numero di volte e non posso dichiarare la dimensione dell'array?
    Gli array non sono ridimensionabili. Per espandere "logicamente" si deve istanziare un nuovo array più capiente, copiare i dati dal vecchio al nuovo, impostare i dati nuovi (uno o più) e infine tenersi il riferimento al nuovo array, di fatto "buttando via" il riferimento al vecchio array.

    Se i metodi o ancora meglio il non li puoi usare per questioni di "esercizio", la cosa più semplice e "banale" per copiare i dati è un ciclo for.
Devi accedere o registrarti per scrivere nel forum
1 risposte