broke31 ha scritto:
salve raga sto implementando con le interfacce e il polimorfismo l'uso di uno stack ma il metodo pop sbomba... non so come risolvere, vi posto tutto il sorgente anche perché vorrei sapere se sto lavorando bene xd...
La interfaccia è corretta (potresti omettere i public sui metodi ma non è un problema).
La classe non è corretta. Il problema è che 'top' rappresenta allo stesso tempo sia il numero di elementi, sia l'indice del prossimo elemento. Se con lo stack iniziale fai 2 push, gli elementi sono agli indici 0 e 1 mentre top diventa 2. Ma quando fai un pop, il stack.get(getTop()) lancia IndexOutOfBoundsException perché l'indice 2 non esiste.
Per fare uno stack con ArrayList non servirebbe nemmeno quel 'top'. Perché con i metodi di ArrayList puoi tranquillamente aggiungere al fondo e togliere dal fondo.
Inoltre nella tua implementazione, anche se correggessi il concetto dell'indice, c'è un altro problema: nel pop non togli fisicamente l'elemento, decrementi solo il top ma questo non basta.
E se invece di ArrayList usassi LinkedList, avresti anche metodi in più come removeLast() (che con ArrayList lo devi "comporre" tu basandoti sul size).