【发布时间】:2018-05-29 12:07:53
【问题描述】:
我对 List 的实现有疑问,它总是给我最后一个重复的元素。这是我的一堆代码:
这是我的清单和清单清单的声明。
public List<List<String>> survs = new ArrayList<>();
public List<String> surveillance = new ArrayList<>();
public int k=0;
在这里我添加了一些字符串。
public void handleAddSURVClick(ActionEvent actionEvent) {
survName = name.getText();
max = maxp.getText();
min = minp.getText();
surveillance.add(survName);
surveillance.add(monitoredObject);
surveillance.add(monitoredProperty);
surveillance.add(max);
surveillance.add(min);
// Add surveillance to the vector
survs.add(k, surveillance);k++;
//Surv initialisation
survName = ""; name.clear();
max = ""; maxp.clear();
min = ""; minp.clear();
monitoredObject = "";
monitoredProperty = "";
}
然后只需将列表添加到列表列表中,然后指定一个索引,我想在其中存储我的列表,然后打印列表列表 (survs)
survs.add(k, surveillance);k++;
System.out.println(survs);
不幸的是,它在提交两个列表后给了我这个结果,它只给了最后一个冗余:
[[yas, ProductSurrounding, charge, 667, 524, stack, ProductSurrounding, charge, 8787, 6422], [yas, ProductSurrounding, charge, 667, 524, stack, ProductSurrounding, charge, 8787, 6422]]
如果我执行survey.clear(),结果将是两个空列表[[],[]]
提前谢谢你
【问题讨论】:
-
所有代码都涉及到了吗?
-
“提交两个列表后它给了我这个结果” ??? - 向我们展示代码。
-
在数组列表上使用
set而不是add -
如果重现错误所需的代码最少,则无法提供帮助。我至少需要查看您是否正在为每个
k清除或创建列表surveillance的新实例的信息 -
@HemantPatel
add是一种正确的方法,OP 从未写过他想用另一个元素替换一个元素。使用 set,您更有可能遇到IndexOutOfBoundsException。
标签: java arrays list javafx arraylist