什么是&lt; []&gt;之间的区别vs <null> </null>

时间:2014-10-16 23:21:50

标签: java collections junit set

<[]> vs <null>

第一个是不包含任何对象的空集。它可以从代码中创建:

Set<Node> expected =new HashSet<>();

第二个可以是包含1个null元素的集合。如果没有,null是否真的有类型Set

不确定如何编码第二项。

2 个答案:

答案 0 :(得分:2)

的百分比抑制率]&GT;表示对象不包含任何元素。 null不是元素。 在调用像new HashSet<>();之类的结构方法之后,将点设置为实际内存。但无效指向无处。

答案 1 :(得分:1)

包含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的集合在很多方面与空集不同。