我正在尝试将 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>
关于java - 如何按值将映射添加到数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27952483/