我对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 = "";
}然后简单地将列表添加到列表列表中,并指定要存储列表的索引,然后打印列表列表(Surv)。
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]]如果我执行surveillance.clear(),结果将是两个空列表[[],[]]
提前谢谢你
发布于 2018-05-29 12:18:22
每次将surveillance添加到survs.But机箱survs后,只创建一个新的实例。就像这样:
public void handleAddSURVClick(ActionEvent actionEvent) {
survName = name.getText();
max = maxp.getText();
min = minp.getText();
surveillance=new ArrayList<>();
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 = "";
}如果您执行surveillance.clear(),那么您正在清除survs.So中引用的surveillance中的值,最后,所有的值都变为空值。
https://stackoverflow.com/questions/50584037
复制相似问题