java - List of List String in java
问题描述
I have a problem with the implementation of List>, it gives me always the last element duplicated. Here is a bunch of my code :
Here is the declaration of my list and the list of lists.
public List<List<String>> survs = new ArrayList<>();
public List<String> surveillance = new ArrayList<>();
public int k=0;
Here i add to the list some strings.
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 = "";
}
then simply i add the list to the list of lists and i specify an index in which i wanna store my list and i print the list of lists ( survs )
survs.add(k, surveillance);k++;
System.out.println(survs);
Unfortunately, it gives me this result after submitting two lists, it gives just the last one redundant:
[[yas, ProductSurrounding, charge, 667, 524, stack, ProductSurrounding, charge, 8787, 6422], [yas, ProductSurrounding, charge, 667, 524, stack, ProductSurrounding, charge, 8787, 6422]]
if i do surveillance.clear(), the results will be two empty lists [[],[]]
Thank you in advance
解决方案
surveillance
每次将其添加到后创建新实例survs
。但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()
那么你将清除 .so 中引用的值surveillance
。survs
所以最后一切都变空了。
推荐阅读
- java - 更新到 Spring 5.1 - java.lang.NoClassDefFoundError: org/springframework/http/server/reactive/ServletServerHttpResponse$ResponseBodyProcessor
- python - 如何使用 python pandas 实现以下结果?
- jquery - 从 CLI 命令检索 idletimeout 信息
- typescript - 为什么 TypeScript 不允许将通用枚举值作为默认参数值
- php - php 和 file_get_contents 的问题,allow_url_fopen
- mongodb - 如何在 mongodb 中减去日期和时间?
- php - 如何在共享服务器上安装用于 Lob API 的 PHP 客户端(显然使用 Composer)?
- python - 第 8 行:SyntaxError - 错误输入 (' ')
- reactjs - 使用 React 在 Material-UI 中的特定日期标记
- android - TextWatcher 正在阻止从 EditText 中删除整个字符串,只是 char 到 char