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());
爲什麼ArrayList中choice
的大小爲5時,所有的元素都被設置爲null
如何將arrayList的大小設置爲null?
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());
爲什麼ArrayList中choice
的大小爲5時,所有的元素都被設置爲null
如何將arrayList的大小設置爲null?
因爲數組列表中仍然有5個元素。它們可能爲空,但它們仍然存在於列表中。
您可以清空ArrayList中,通過調用choice.clear();
我認爲,是混淆你的是,你所想的ArrayList爲對象的ArrayList,而不是一個對象引用的ArrayList。
Object的ArrayList表示對象的索引可訪問列表引用。
對於這樣的引用來說,不是指真實對象而是「空」,這是有效的。
因此,您有五個參考「插槽」,每個插槽的值爲null。
這與一系列的四個零值或零零點不一樣。
看看你的初始和基本字符串數組 - 它的長度是五,而不是零。
甚至更簡單,當你有一個Object類型的字段的類時,它仍然佔用空間,不管它實際上是指什麼或者是null。否則,您將無法實例化該類,並且在您將實際內容分配給該字段時不需要重新分配該類。
+1 - 最佳答案在這裏:) – RubyDubee 2010-04-01 07:01:47
從Javadoc文檔的ArrayList:
的 List接口的大小可變數組的實現。實現所有 可選列表操作,並允許 所有元素,包括null。
ArrayLists可以容納空元素,所以大小爲5。請記住,如果你只是聲明一個new ArrayList(5)
,它將有一個初始容量爲5,但size()
將爲0.
這是因爲ArrayList不是null,它包含五個對象(全爲空),無論如何,一個ArrayList永遠不會有一個空的大小,至少大小爲0(零),如果ArrayList未初始化(爲空),並且您嘗試訪問函數size(),它將拋出一個NullPointerException。我希望這些信息對你有用,對不起我的英文不好:(
謝謝你問這個:) – RubyDubee 2010-04-01 07:01:19