Увеличение размера ArrayList в ArrayList в Java - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь увеличить размер ArrayList внутри ArrayList всякий раз, когда добавляется новое значение, но я не уверен в правильном способе сделать это.Вот что у меня сейчас:

public ArrayList<ArrayList<Integer>> outerList;

public int addValue(int value) {
    int a = 0;

    ArrayList<Integer> innerList = new ArrayList<Integer>();

    if (noValue(value) == true) { // noValue checks if the value exists at a position in outerList and returns true if it's empty
            innerList.add(value); // innerList has now size 1
            outerList.add(innerList); 

    }

    else {
            a += 1;
            innerList.add(value);
            outerList.add(innerList);
    }

    return a; 

}

Но, исходя из моих тестов, размер innerList остается равным 1.

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Но, исходя из моих тестов, размер innerList остается равным 1.

Это потому, что в вашем методе addValue() вы создаете новый innerList и добавляете его всписок.Таким образом, ваш внешний ArrayList будет состоять из множества ArrayList с одним объектом в них.

Чтобы изменить это, вы должны использовать метод get(), чтобы получитьвнутренние ArrayList и затем добавляют элемент к нему.Примерно так:

outerList.get(index).add(value);

Где index - это индекс внутреннего списка, в который вы хотите добавить значение к

0 голосов
/ 08 октября 2018

Вы никогда не получаете что-либо из outerList, все экземпляры innerList всегда создаются заново, а затем добавляется одна новая запись.Затем это innerList добавляется к outerList и никогда больше не затрагивается.

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