如何减少未使用的ArrayList容量

时间:2016-04-09 16:42:35

标签: java arraylist nullpointerexception

在某些转换ArrayList包含3个元素后,ArrayList大小最大,然后是3.因此,当使用NullPointerException圈时,forEach会出现。

如何避免这种情况?我的意思是没有!=null检查。

示例:

List<String> busesIdToRemove = driverWrapper.getBusesIdToRemove(); 

列表包含id,这些实体将被删除。发生错误:

for (String id : busesIdToRemove) { 
Long longId = Long.valueOf(id); //here. Because id is null ... 
} 

但实际上,list只包含非空值的元素。

例如[index,value]。

1,&#34; 41&#34 ;;

4,&#34; 50&#34; ...

调试器中缺少具有索引[0],[2],[3]的元素的信息,并且get(0)返回null,例如方法。

解决问题:arrayList.removeAll(Collections.singleton(null));

2 个答案:

答案 0 :(得分:5)

如果尺寸大于3,则表示您未正确移除元素。将它们设置为null不会删除。

您需要使用arrayList.remove(item)方法。

答案 1 :(得分:0)

从您的null

中移除所有arrayList项的单行技术
arrayList.removeAll(Collections.singleton(null));

确保尺寸只看arrayList.size()

的价值