有没有办法通过内置函数调用删除ArrayList
中的所有空单元格?我看到了trimToSize
,但我并没有真正理解它的意思。
例如,假设我有一个包含{1,2,3}
的数组。假设我说array.remove(1)
所以现在数组看起来像{1,null,3}
。是否有调用函数使其收敛为{1,3}
?
我知道我可以硬编码一种方法来为我做这件事,但我只是好奇。
答案 0 :(得分:7)
删除指定的元素 在此列表中的位置。转移任何 左边的后续元素 (从他们的指数中减去一个)。
现在,如果你在讨论数组而不是ArrayList
,那么答案就是否定。
答案 1 :(得分:2)
如果您使用的是ArrayList,则无需担心从中删除元素后压缩数组。 ArrayList类负责这种内务管理。
如果您使用的是数组,则可以使用Commons Lang ArrayUtils类。此类中的removeElement方法简化了从数组中删除元素并将其后的所有元素移到左侧。
答案 2 :(得分:1)
在here中,您会找到一篇文章,介绍如何删除集合中的所有空元素
List<Integer> myList = new ArrayList<Integer>();
myList.add(1);
myList.add(2);
myList.add(null);
myList.add(3);
myList.add(null);
myList.add(4);
System.out.println("With null values");
for(Integer i: myList)
System.out.println(i);
myList.removeAll(Collections.singleton(null));
System.out.println("After deleting null values");
for(Integer i: myList)
System.out.println(i);
输出: 使用空值 1 2 空值 3 空值 4
删除空值后 1 2 3 4