假设您想在Java中实现集合论概念,例如
如果我认为数据库的三值逻辑中使用的
element
、set
、collection
和relation
:那么您将如何表示 空集 ∅
?如果我认为数据库的三值逻辑中使用的
NULL
概念就是它本身,那么我会被误导吗?element
、set
、collection
和relation
:那么您将如何表示 空集 ∅
?NULL
概念就是它本身,那么我会被误导吗?返回空的不可变集合。该集合是可序列化的。与同名字段不同,此方法是参数化的。以下示例说明了获取空集合的类型安全方式:
Set<String> s = Collections.emptySet();
实现注意事项:此方法的实现不需要为每个调用创建单独的Set对象。使用此方法可能具有与使用相同名称的字段相当的成本。(与此方法不同,该字段不提供类型安全性。)
null
来代表空集合是一个不好的主意。因为null
并不像Set
那样,所有对其进行的操作都会抛出NullPointerException
异常。这意味着,如果你使用null
表示空集合,你的代码将充斥着对null
的测试... 如果你错过了一个测试,就会出现错误。Collections.emptySet()
,如果您想要一个可变的空集,请创建适当的Set
类实例(例如new HashSet<>()
)。 Set 实现为一个不可变类。 (在数学中,您不会突变事物!)然后,空集只是一个没有元素的Set
实例。不需要特殊处理。
NULL
的概念不是必需的...除非您特别想在集合的数学模型中纳入“null”、“未定义集合”或某些类似的概念。(如果是这样,我们无法在不了解您的模型的情况下提供建议...从数学的角度来看。)
Set
”,但是根据你正在做的事情,NULL
也可能是合适的。 - Oliver CharlesworthSet<E> = new HashSet<E>()
是其中最简单的一种。 - Fred Foo