java - 列表的每个元素在函数之外都有相同的元素。

标签 java list arraylist null

 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/

相关文章:

javascript - 循环遍历数组并打印特定范围的值?

python - 从使用Python中的groupby itertools创建的词典列表中删除重复项

java - 执行依赖于其他任务的 CompletableFuture

java - 在 Java 中与字节相互转换

java - Samsung Galaxy Tab S 无法从 "Download"目录获取 listFiles

c# - 从列表中排除一个项目(按索引),并采取所有其他

java - 包含 zip 文件的 base64 字符串的解码在结果字符串中得到 8 个字符代码错误

c# - 按最深目录对路径列表进行排序

arraylist - 将 ArrayList 转换为 JavaFX 程序的可观察列表?

java - 将成员对象添加到 ArrayList<Membership>