Как очистить массив в java
Перейти к содержимому

Как очистить массив в java

  • автор:

Как очистить массив?

Методов для очистки массива в 0.0, 0, null, false, ‘\u0000’ и т.п. не существует. Когда вы создаете массив, его элементы инициализируются значением по умолчанию (default value), но повторить автоматическую инициализацию невозможно.

Если вам необходимо много раз устанавливать массив в одно и то же множество значений, создайте массив-шаблон. Инициализируйте его необходимым набором значений и используйте System.arraycopy() для копирования в рабочий массив каждый раз, когда требуется переустановка значений рабочего массива.

Какой наиболее быстрый путь установки значений всех элементов массива? Я не хочу использовать массив-шаблон. Я хотел бы делать это без дублирования (возможно, большого) массива.

Использование цикла, который поочередно присваивает значения элементам массива, в 20 — 40 раз медленнее, чем старый добрый memset() в Си.

Hа многих Java Virtual Machine (JVM) можно сделать так: присвоить значение первому байту массива, использовать System.arraycopy() для последовательного заполнения следующего байта, затем следующих двух байт, следующих четырех байт, следующих восьми байт и т.д. пока не останется меньшая часть массива, которую System.arraycopy() заполнит в один прием.

public static void bytefill(byte[] array, byte value) int len = array.length;
if (len > 0)
array[0] = value;
for (int i = 1; i Домен продается

Популярное

  • Dead Man Zero – сервис для хранения секретов
  • Netropolitan — социальная сеть для богатых людей
  • Artisteer 4 — веб-дизайн без проблем

Как удалить массив?

Как удалить многомерный массив, что бы он не занимал оперативную память?

  • Вопрос задан более трёх лет назад
  • 230 просмотров

Комментировать

Решения вопроса 1

Billy Milligan @Billy_Milligan

Это должен сделать сборщик мусора.
А что бы помочь ему, можно сделать так:
array = null;

Ответ написан более трёх лет назад

Quad_Tree @Quad_Tree Автор вопроса

Да у меня при выполнении цикла память так и забивается.

Billy Milligan @Billy_Milligan

Quad_Tree: А почему бы не использовать массив повторно? не создавая каждый раз новый

Ответы на вопрос 2

e_svirsky

Web Developer

unset($array)

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

java developer

Покажите ваш код. Скорее всего алгоритм не правильный. Если все же без создания массива никуда и если не нужна гарантия сохранности этих данных, то используйте weak reference. GC их грохнет сразу при первом запуске.

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

Ваш ответ на вопрос

Войдите, чтобы написать ответ

android

  • Android
  • +2 ещё

Как задать действие для отрисованных кнопок в AndroidStudio?

  • 1 подписчик
  • 5 минут назад
  • 4 просмотра

Как обнулить массив java

Для того, чтобы очистить массив в Java , можно использовать цикл for и присвоить каждому элементу массива значение по умолчанию для его типа данных.

Например, если массив имеет тип int[] , то каждый элемент массива можно установить в значение 0:

int[] myArray = 1, 2, 3, 4, 5>; for(int i = 0; i  myArray.length; i++)  myArray[i] = 0; > 

После выполнения этого цикла каждый элемент массива будет равен 0. Если массив имеет тип другого примитивного типа данных, то значение по умолчанию будет другим. Например, для boolean[] значение по умолчанию будет false

Если массив имеет тип ссылочного типа данных, то каждый элемент массива будет ссылаться на значение null после очистки массива. Для этого можно использовать следующий код:

Object[] myArray = new Object[10]; Arrays.fill(myArray, null); 

Как очистить массив java

Чтобы «очистить» массив в Java , то есть установить все его элементы в значение по умолчанию для данного типа данных (например, 0 для чисел), можно воспользоваться циклом и присвоить каждому элементу массива соответствующее значение по умолчанию.

Например, для массива целых чисел это может выглядеть так:

int[] myArray = new int[10]; // заполнение массива данными // . // очистка массива for (int i = 0; i  myArray.length; i++)  myArray[i] = 0; > 

Для массива объектов нужно присвоить каждому элементу значение null :

MyObject[] myArray = new MyObject[10]; // заполнение массива данными // . // очистка массива for (int i = 0; i  myArray.length; i++)  myArray[i] = null; > 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *