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!