如何将arrayList大小设置为null?

时间:2010-04-01 01:52:33

标签: java null arraylist

String a []= {null,null,null,null,null};

//add array to arraylist
ArrayList<Object> choice = new ArrayList<Object>(Arrays.asList(a)); 

System.out.println(choice.size());

当所有元素都设置为choice时,为什么arrayList null的大小为5

4 个答案:

答案 0 :(得分:4)

我认为令你困惑的是你将ArrayList视为对象的ArrayList,而不是对象引用的ArrayList。

Object的ObjectList表示对象的引用的索引可访问列表。

对于这样的引用有效,不引用实际对象,而是“null”。

因此,您有五个引用“槽”,每个槽的值为null。

这与一系列四个空值或零空值不同。

查看您的初始和原始字符串数组 - 其长度为5,而不是零。

甚至更简单,当你有一个类型为Object的字段的类时,它仍然需要空间,无论它实际上是指某个东西还是null。否则,您将无法实例化该类,并且在您实际为该字段分配内容时无需重新分配该类。

答案 1 :(得分:2)

因为arraylist中仍然有5个元素。它们可能为空,但它们仍然存在于列表中。

您可以通过调用choice.clear();

清空ArrayList

答案 2 :(得分:1)

来自ArrayList的Javadocs:

  

可调整大小的数组实现   列表界面。实现所有   可选列表操作和许可   所有元素,包括null。

ArrayLists可以包含null元素,因此大小为5。请注意,如果您只是声明new ArrayList(5),则初始容量为5,但size()为0。

答案 3 :(得分:1)

这是因为ArrayList不为null,它包含五个对象(全部为null),无论如何,ArrayList永远不会有空大小,至少大小为0(零),并且如果未初始化ArrayList(是null)并且您尝试访问函数size()它将抛出NullPointerException。我希望这些信息对你有用,对不起我的英语不好:(