2015-06-16 2 views
-3

Есть способы уменьшить размер массива с помощью нового массива. Но я хочу знать, как мы можем это сделать, не используя дополнительный массив.Как мы можем уменьшить размер массива символов в Java?

+4

Что значит «уменьшить размер»? освободить память ненужных частей массива? –

+0

Мне нужно удалить повторяющиеся элементы из массива – user2563312

+1

Java не особенно поддерживает удаление элементов из массива на месте. Размеры массива статичны, последний раз я проверял. – InsidiarumCrassescit

ответ

3

Как только массив создан, вы не можете изменить размер. Вы можете либо создать новый массив, либо использовать ArrayList (внутренне, однако, ArrayList создает новый массив, но это скрыто от вас).

+0

Он заявил, "используя новый массив" –

0

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

0

Массивы являются статическими по размеру. Когда вы инициализируете массив с заданным размером, он всегда будет иметь такой размер. Подумайте о массиве как к коробке с яйцом. Он может иметь или не иметь яйца в каждом слоте, но он всегда будет иметь 12 слотов (или 6 или 18 или сколько угодно).

Что касается удаления дубликатов, вы можете заменить дубликаты, с которыми вы сталкиваетесь, с нулевым значением, что делает слот «пустым».

public static void deleteDuplicates(Character[] arr){ 
    for(int i = 0; i < arr.length; i++){ 
     for(int j = 0; j < i; j++){ 
      if(arr[j] != null && arr[j].equals(arr[i]){ 
       //Found duplicate - delete duplicate and stop searching 
       arr[i] = null; 
       break; 
     } 
    } 
} 
Смежные вопросы