Список Строка Списка в Java - PullRequest
0 голосов
/ 29 мая 2018

У меня проблема с реализацией 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.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]]

, если я сделаю Наблюдение.clear (), результатом будут два пустых списка [[], []]

Заранее спасибо

1 Ответ

0 голосов
/ 29 мая 2018

Создайте новый экземпляр 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(), тогда вы очищаете значение в ссылке surveillance в вашем survs. Так что в конце все становится пустым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...