[英]Arraylist.clear() deletes content of hashTable
我有以下代碼:
podmienky.put(key, podmienkyOblast);
podmienkyOblast.clear();
podmienky
是HashTable<String, ArrayList<String>>
並且podmienkyOblast
是ArrayList<String>
。 如果我把podmienky.get("index").size()
之前podmienkyOblast.clear()
返回6,因為它應該。 但是,如果我將podmienky.get("index").size()
放在podmienky.get("index").size()
之后,它將返回0。我認為,如果我將某些內容放podmienkyOblast.clear()
表,則實際上會為其添加內容。 但正如我所看到的,它僅存儲對arrayList的引用。 我錯了嗎? 我應該如何做這項工作?
謝謝前進
您將對ArrayList
的引用放入Hashtable
。 如果要將值從ArrayList
添加到表中,則必須遍歷列表中的元素。
for(Object element : podmienkyOblast) {
// TODO generate a key for your value here
String key = "...";
podmienky.put(key, element);
}
Java處理對象引用,如果您需要復制對象,則需要考慮克隆 (也稱為深度復制)。
另外,Favor會在實現上進行接口 ,因此請使用List
而不是ArrayList
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.