Arraylist.clear()删除hashTable的内容

时间:2014-12-20 17:55:43

标签: java arraylist hashtable

我有以下代码:

podmienky.put(key, podmienkyOblast);
podmienkyOblast.clear();

podmienkyHashTable<String, ArrayList<String>>podmienkyOblastArrayList<String>。如果我将podmienky.get("index").size()放在podmienkyOblast.clear()之前,它会返回6。但是如果我在podmienky.get("index").size()之后放podmienkyOblast.clear()它返回0.我认为如果我把东西放到哈希表中,我会实际添加它的内容。但正如我所看到的那样,它只存储了对arrayList的引用。我错了吗?我该怎么做才能做到这一点?

先谢谢

2 个答案:

答案 0 :(得分:0)

您将ArrayList的引用加入Hashtable。如果要将ArrayList中的值添加到表中,则必须迭代列表中的元素。

for(Object element : podmienkyOblast) {
    // TODO generate a key for your value here
    String key = "...";
    podmienky.put(key, element);
}

答案 1 :(得分:0)

Java处理Object引用,如果需要复制对象,则需要考虑cloning(a.k.a深层复制)。

另外,赞成接口实现,因此请使用List代替ArrayList