java.util.Listについて質問です。

Hashtable ht = new Hashtable();
List list = new ArrayList();
ht.put("TEST", "TEST01_Value");
list.add(ht);
ht.put("TEST", "TEST02_Value");
list.add(ht);
ht.put("TEST", "TEST03_Value");
list.add(ht);
for (int i = 0; i < list.size(); i++) {
System.out.println(""+(Hashtable)list.get(i));
}

この場合、結果が
{TEST=TEST01_Value}
{TEST=TEST02_Value}
{TEST=TEST03_Value}
となるのを期待しているのですが、何故か
{TEST=TEST03_Value}
{TEST=TEST03_Value}
{TEST=TEST03_Value}
となってしまいます。
list.addでオブジェクトを入れた時点での値が入るのではないのでしょうか?