Могу ли я объявить массив один раз и через код объявить его снова? - PullRequest
0 голосов
/ 11 февраля 2019

Могу ли я повторно объявить массив, который уже объявлен?

Поэтому я пытаюсь пройти через LinkedList и получить каждый индекс, который включает в себя "ноль" в качестве элемента, и добавить эти индексы в массивints.

Проблема, с которой я столкнулся: массив уже объявлен как: int [] solution = new int [0];

Могу ли я переопределить его еще раз, например, скажем: int newSize= 10;решение = [newSize];

Это работает?

int k = 0;
int counter = 0;

if(!isEmpty())
    {
        for(int j = 0 ; j < size(); j++)     
        {
            if(current.getContent().equals(null))
            {
                counter++;
            }
        }

        result = new int[counter];

        for(int i = 0 ; i < size(); i++)
        {
            if(current.getContent().equals(null)) 
            {
                result[k++] = i ;
            }
        }
    }

Я пытался распечатать элементы Result, но все, что я получаю, это хорошо ... пустой массив.

1 Ответ

0 голосов
/ 11 февраля 2019

Краткий ответ (как упомянуто в документации Java => ссылка )

Длина массива устанавливается при его создании.После создания его длина фиксирована.

Некоторые дополнительные сведения:

Когда вы используете: int[] solution = new int[0], вы создаете массив, который может содержать 0 элементов, и просите «решение» обратитьсяк нему.

Если позже в своем коде вы используете solution = new int[10], вы создадите массив, который может содержать 10 элементов, и попросите «решение» сослаться на этот новый массив.Предыдущий массив все еще существует где-то в памяти.

Поиск "управления памятью Java", если вы хотите полное объяснение.

...