<[]> vs <null>
第一個是不包含對象的空集。它可以從代碼創建:<[]>與<null>之間的區別是什麼
Set<Node> expected =new HashSet<>();
第二個可能是包含1個空元素的集合。如果不是,可以爲null真的有一個類型Set
?
不知道如何編碼第二個項目。
<[]> vs <null>
第一個是不包含對象的空集。它可以從代碼創建:<[]>與<null>之間的區別是什麼
Set<Node> expected =new HashSet<>();
第二個可能是包含1個空元素的集合。如果不是,可以爲null真的有一個類型Set
?
不知道如何編碼第二個項目。
< []>表示一個對象不包含任何元素。 null不是一個元素。 在u調用結構方法如new HashSet<>();
後,設置指向一個真實的內存。但零點無處。
包含null
的集合包含元素null
。一個空集不包含元素null
。
假設將包含null
這樣一組:
Set<Object> setWithNull = new HashSet<Object>();
setWithNull.add(null);
和空集是這樣的:
Set<Object> emptySet = new HashSet<Object>();
然後,你可以看到以下差異:
setWithNull.size()==1 emptySet.size()==0
setWithNull.isEmpty()==false emptySet.isEmpty()==true
setWithNull.contains(null)==true emptySet.contains(null)==false
setWithNull.equals(emptySet)==false
所以包含null
的集合與空集不同在許多重要方面。
'null'是**不是**對象。這是一個指向無處的引用,可以有任何對象的**引用**類型。它佔用堆棧上的內存插槽,但堆中沒有任何內容。 – 2014-10-16 23:27:13