如何实现空集 - ∅?

M4T*_*4CK 16 java null set-theory

假设你想实现一套理论概念,如element,set,collectionrelation在Java中:你如何表示空集 ?

如果我想到NULL数据库的三值逻辑所使用的概念,我是否会误导自己?

Woj*_*zyk 37

使用 Collections.emptySet():

返回空集(不可变).这个集是可序列化的.与名称相同的字段不同,此方法是参数化的.此示例说明了获取空集的类型安全方法:

 Set<String> s = Collections.emptySet();   
Run Code Online (Sandbox Code Playgroud)

实现说明:此方法的实现不需要为每个调用创建单独的Set对象.使用此方法可能具有与使用类似命名字段相当的成本.(与此方法不同,该字段不提供类型安全性.)


Ste*_*n C 12

使用null表示空集是一个坏主意.A null表现得不像Set因为(显然)所有对它执行操作的尝试都会抛出一个NullPointerException.这意味着如果你null用来表示一个空集,你的代码将会被测试null... ...如果你错过了一个,你就会遇到一个错误.

如果你想要一个不可变的空集,解决方法是使用Collections.emptySet(),或者Set如果你想要一个空的可变集,则创建一个相应类的实例.