JAVA初心者であります。

ある配列を作成し、
その配列にオブジェクト(Hashtable)を格納した後、
その配列->オブジェクト内を参照しようと以下のようにコーディングしてみましたが、
思うように動作しません。

すみませんが、どのたか御教授願い無いでしょうか?
お願いします。(;;)

ArrayList l = new ArrayList();
Hashtable h = new Hashtable();

h.put( "A" , "a1" );
l.add( h );
h.clear();

h.put( "A" , "a2" );
h.put( "B" , "b2" );
l.add( h );
h.clear();

h.put( "A" , "a3" );
h.put( "B" , "b3" );
h.put( "C" , "c3" );
l.add( h );

for ( int i = 0 ; i < l.size() ; i ++ ) {
Hashtable hh = new Hashtable((Hashtable)l.get(i));
Enumeration em = hh.keys();
while( em.hasMoreElements() ) {
String s = (String)em.nextElement();
String v = (String)hh.get( s );
out.println( i + "/" + s + "/" + v );
}
}

※思うように動いて欲しい動作
0 / A / a1
1 / A / a2
1 / B / b2
2 / A / a3
2 / B / b3
2 / C / c3
※現状
0 / A / a3
0 / B / b3
0 / C / c3
1 / A / a3
1 / B / b3
1 / C / c3
2 / A / a3
2 / B / b3
2 / C / c3