我想添加类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