[英]how to add a map to arraylist, by value
我試圖在循環中將Document類的對象添加到arraylist中。 問題在於,每次對象更改時,列表中的上一個內容也會更改
這是我的Document類:
public class Document {
public Map<String, Double> tokens;
public String category;
}
我有列表數據集:
List<Document> dataset = new ArrayList<Document>();
我將文件的所有標記從文件讀取到名為counts的映射。 然后做如下
doc = new Document();
doc.tokens = counts;
doc.category=sampleCategory;
dataset.add(doc);
counts.clear();
但是每次我閱讀新文檔時,數據集的內容都會更改為新文檔的值。 那么如何按值而不是按引用添加文檔?
好像您要向所有Document實例添加相同的“ counts”對象。 代替counts.clear()
,將計數分配給相應類型的新實例:
counts = new HashMap<String, Double>
要重復使用的次數和每次sampleCategory 相同的情況下 ,所以任何修改將修改休息。
您應該每次創建一個新對象,然后將其分配到新Document中 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.