Java 如何将arrayList大小设置为空? 字符串a[]={null,null,null,null,null}; //将数组添加到arraylist ArrayList选项=新建ArrayList(Arrays.asList(a)); System.out.println(choice.size());

Java 如何将arrayList大小设置为空? 字符串a[]={null,null,null,null,null}; //将数组添加到arraylist ArrayList选项=新建ArrayList(Arrays.asList(a)); System.out.println(choice.size());,java,null,arraylist,Java,Null,Arraylist,当所有元素都被设置为null时,为什么arrayList选项的大小是5?我认为让您困惑的是,您认为arrayList是对象的arrayList,而不是对象引用的arrayList 对象的ArrayList表示对象引用的索引可访问列表 这种引用不引用真实对象,而是“null”是有效的 因此,您有五个参考“插槽”,每个插槽的值为null 这与由四个空值或零个空值组成的序列不同 看看你的字符串的初始数组和基本数组——它的长度是五,而不是零 更简单的是,当您有一个具有Object类型字段的类时,它仍然占

当所有元素都被设置为
null

时,为什么arrayList
选项的大小是5?我认为让您困惑的是,您认为arrayList是对象的arrayList,而不是对象引用的arrayList

对象的ArrayList表示对象引用的索引可访问列表

这种引用不引用真实对象,而是“null”是有效的

因此,您有五个参考“插槽”,每个插槽的值为null

这与由四个空值或零个空值组成的序列不同

看看你的字符串的初始数组和基本数组——它的长度是五,而不是零


更简单的是,当您有一个具有Object类型字段的类时,它仍然占用空间,而不管它实际上是引用某个对象还是为null。否则,您将无法实例化该类,并且在实际为字段分配某些内容时不需要重新分配该类

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


通过调用
choice.clear(),可以清空ArrayList

来自Javadocs for ArrayList:

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


ArrayList可以保存空元素,因此大小为5。请记住,如果只声明一个
新ArrayList(5)
,它的初始容量将为5,但
size()
将为0。

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

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());