svm_node n=new svm_node();
for (String tk:instance.keySet()){
System.out.println(tk + " "+ instance.get(tk));
if(IndexDic.containsKey(tk)){
n.index=(IndexDic.get(tk));
n.value=instance.get(tk);
nodes.add(n);
}
else{
System.out.println("does not contain"+tk);
}
}
我有上面的代码。将节点值输出到控制台或使用调试器检查后,所有元素都具有相同的值。也就是说,节点中的所有 n 具有相同的值。我该怎么处理帽子?
最佳答案
您一遍又一遍地将相同的 svm_node
对象添加到集合中。要解决此问题,请将 svm_node
的实例移至循环内部:
for (String tk:instance.keySet()) {
svm_node n=new svm_node();
System.out.println(tk + " "+ instance.get(tk));
if (IndexDic.containsKey(tk)) {
n.index = (IndexDic.get(tk));
n.value = instance.get(tk);
nodes.add(n);
}
else {
System.out.println("does not contain"+tk);
}
}
关于java - 列表的每个元素在函数之外都有相同的元素。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40032387/