<[]> vs <null>
第一个是不包含任何对象的空集。它可以从代码中创建:
Set<Node> expected =new HashSet<>();
第二个可以是包含1个null元素的集合。如果没有,null是否真的有类型Set
?
不确定如何编码第二项。
答案 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
的集合在很多方面与空集不同。