Credo che tu non debba farlo in base alla memoria disponibile, cioè dire "se ho X mega di ram disponibile allora alloco un array lungo Y". Avrebbe poco senso.Originariamente inviato da bocco
quindi nel costruttore quando dichiaro il mio array come faccio a farlo dinamico cioe in base alla memoria disponibile?
Penso invece che tu debba implementare una struttura dati che è in grado di "espandersi" man mano che serve. Che è poi quello che fanno le collezioni già presenti nel framework di Java, es. ArrayList. ArrayList è una lista basata internamente su un banalissimo array Object[] ma con la caratteristica di potersi espandere man mano che serve. Quando fai un add(), se la capacità fisica dell'array non è più sufficiente, ArrayList istanzia un nuovo array più grande, copia gli elementi dal vecchio array al nuovo e quindi aggiunge il nuovo valore.
Altre strutture dati, es. LinkedList, sono gestite in modo diverso ma ad ogni modo sono in grado di espandersi.