我想添加類Document的對象到循環中的ArrayList。 問題是,每一次的對象更改,列表的prevous內容也發生了變化如何將地圖添加到arraylist,值
這裏是我的文檔類:
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'對象的副本嗎? –
在Java中,您無法按值傳遞對象。您按值傳遞對象**引用**。 – m0skit0
可能的重複[是Java「通過引用傳遞」還是「傳遞值」?](http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass - 按值) – m0skit0