Ajout des objets définis par l'utilisateur à la liste de tableaux en Java

Je veux ajouter un type défini par l'utilisateur, comme celui illustré ci-dessous, une ArrayList.

import java.util.ArrayList;

class MyObj
{
    int iX;
}
public class testForLoopjava
{
    public static void main(String[] args)
    {
        MyObj ob1 = new MyObj();
        ArrayList<MyObj> al = new ArrayList<MyObj>();
        int a,b;
        for(int i =0;i<5;i++)
        {
            ob1.iX = i + 5;
            al.add(ob1);
        }
        for(int j=0;j<5;j++)
            System.out.println("iX: "+al.get(j).iX);
    }
}

Lorsque j'essaie d'imprimer le code ci-dessus, iX toujours imprime 9. c'est à dire iX est mise à jour par la dernière valeur dans la liste. Quelle est la raison? Suis-je en train de faire quelque erreur de base.?

De sortie:

iX: 9
iX: 9
iX: 9
iX: 9
iX: 9

OriginalL'auteur SyncMaster | 2011-11-22