Удалить все данные из 2D-массива строки в Java - PullRequest
0 голосов
/ 15 марта 2012

У меня есть строковый массив str[10][3], он полон значений. Теперь я хочу сделать его пустым, т.е. удалить все значения str. Я определил str как статический, и я хочу очистить эту строку от другого claas в том же пакете. Могу ли я использовать null здесь.

Пожалуйста, предложите какой-нибудь способ. спасибо

Ответы [ 3 ]

3 голосов
/ 15 марта 2012

Конечно, вы можете использовать null, но сначала подумайте, действительно ли вам нужно их обнулить, потому что нулевые значения в большинстве случаев вызывают проблемы и требуют особой обработки.Вы можете использовать пустую строку "", чтобы избежать проблем с NullPointerExceptions.

. Просто переназначьте новый массив на ту же переменную, и дело в том, что Java позаботится о сборе собранных данных:

ClassName.str = new String[10][3];
0 голосов
/ 15 марта 2012

Всегда можно установить значение равным нулю, если это не примитивный тип (int, char, boolean, ...) или значение только для чтения.Я предполагаю, что это ни один из них, поэтому ответ ДА.

Итак, решение будет таким:

str = null;

Если вы хотите заполнить свою структуру новыми значениями, вы можете использовать

str = new String[10][3];

однако я не понимаю, почему вы должны это делать, это не потому, что вам не нужны данные, вы должны от них избавиться.Кроме того, в новом str есть также данные (начальные null -строки).Но если вы не хотите хранить новые данные в структуре, это не проблема.Эту парадигму иногда называют «ленивой».Это означает: «не делайте ничего, если вам абсолютно не нужно»

При установке null данные не исчезнут сразу.Это планируется удалить сборщиком мусора.Программа, которая работает только на некоторой низкой частоте или если программе требуется память.В этом случае он помечает память как свободную, чтобы ее можно было использовать повторно.

0 голосов
/ 15 марта 2012

str = new String[10][3]; назначит пустой 2D-массив для str.

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