Salve ragazzi... il mio problema riguarda un arraylist e una funzione che stampa il suo contenuto.
Ho una classe Giocatore di attributi ID,Cognome,Ruolo,Costo,SquadradiAppartenenza e in un'altra classe ho un arraylist di Giocatore chiamato ElencoGiocatori.
In quest'ultima classe ho questo medoto:
codice:
public static void StampaElencoGiocatori()
{
if(!ElencoGiocatori.isEmpty())
{
System.out.println("******** GIOCATORI *******");
for(int i=0;i<ElencoGiocatori.size();i++)
{
ElencoGiocatori.get(i).StampaGiocatore();
}
}
else {System.out.println("Nessun giocatore inserito!");};
}
dove StampaGiocatore() è un metodo che stampa a i video le get degli attributi di Giocatore.
Il seguente è un medoto che non dovrebbe fare altro che stanziare una variabile di tipo Giocatore e aggiungerlo all'arraylist ElencoGiocatori:
codice:
public static void AggiungiGiocatore(Integer ID,String Cognome,String Ruolo,Integer Costo, String SquadGioc)
{
Giocatore G = new Giocatore(ID, Cognome, Ruolo, Costo, SquadGioc);
ElencoGiocatori.add(G);
}
Prima di spiegarvi il problema, vi riporto un piccolo main di prova:
codice:
public static void main(String[] args)
{
Fantacalcio.AggiungiGiocatore(1, "Del Piero", "A", 10, "JUV");
Fantacalcio.AggiungiGiocatore(2, "Boateng", "C", 15, "MIL");
Fantacalcio.StampaElencoGiocatori();
}
Mandando il tutto in esecuzione con i dovuti aggiustamenti (ho cercato di evitare di riportare codice inutile) il risultato è la stampa dell'ultimo giocatore inserito ripetuta per n volte... dove n è il numero di volte che ho richiamato AggiungiGiocatore.
Ho provato a cercare alternative ma non riesco a risolvere il problema... qualcuno può darmi un consiglio?
Vi ringrazio anticipatamente!