首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java中的列表字符串列表

java中的列表字符串列表
EN

Stack Overflow用户
提问于 2018-05-29 12:07:53
回答 1查看 526关注 0票数 0

我对List>的实现有一个问题,它总是给我最后一个重复的元素。下面是我的一堆代码:

这是我的名单和清单的声明。

代码语言:javascript
复制
public List<List<String>> survs = new ArrayList<>();
public List<String> surveillance = new ArrayList<>();
public int k=0;

这里,我在列表中添加了一些字符串。

代码语言:javascript
复制
  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)。

代码语言:javascript
复制
    survs.add(k, surveillance);k++;
    System.out.println(survs);

不幸的是,在提交了两个列表之后,它给了我这个结果,它给出了最后一个冗余的结果:

代码语言:javascript
复制
    [[yas, ProductSurrounding, charge, 667, 524, stack, ProductSurrounding, charge, 8787, 6422], [yas, ProductSurrounding, charge, 667, 524, stack, ProductSurrounding, charge, 8787, 6422]]

如果我执行surveillance.clear(),结果将是两个空列表[[],[]]

提前谢谢你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-29 12:18:22

每次将surveillance添加到survs.But机箱survs后,只创建一个新的实例。就像这样:

代码语言:javascript
复制
    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中的值,最后,所有的值都变为空值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50584037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档