EDIT:
Точка с нулями в массиве была очищена. Извините за мои комментарии.
Оригинал:
Эмм ... линия
array = list.toArray(array);
заменяет все пробелы в массиве, где был удален элемент, с null . Это может быть опасно , поскольку элементы удаляются, но длина массива остается неизменной!
Если вы хотите избежать этого, используйте новый массив в качестве параметра для toArray (). Если вы не хотите использовать removeAll, альтернативой будет Set:
String[] array = new String[] { "a", "bc" ,"dc" ,"a", "ef" };
System.out.println(Arrays.toString(array));
Set<String> asSet = new HashSet<String>(Arrays.asList(array));
asSet.remove("a");
array = asSet.toArray(new String[] {});
System.out.println(Arrays.toString(array));
Дает:
[a, bc, dc, a, ef]
[dc, ef, bc]
Где в качестве текущего принятого ответа Крис Йестер Янг выводит:
[a, bc, dc, a, ef]
[bc, dc, ef, null, ef]
с кодом
String[] array = new String[] { "a", "bc" ,"dc" ,"a", "ef" };
System.out.println(Arrays.toString(array));
List<String> list = new ArrayList<String>(Arrays.asList(array));
list.removeAll(Arrays.asList("a"));
array = list.toArray(array);
System.out.println(Arrays.toString(array));
без нулевых значений.