簡體   English   中英

如何按值將映射添加到arraylist

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM