Java Stack类中的empty()vs isEmpty()

时间:2014-07-28 00:13:44

标签: java

为什么Java中的Stack具有empty()方法以及通常的isEmpty()Stack扩展的所有抽象类都有isEmpty()方法。

2 个答案:

答案 0 :(得分:46)

我认为OP的问题更多的是:为什么有重复的方法,给定empty()isEmpty()做同样的事情?

如果仔细查看一下,在VectorStackHashTable中,会有更多这样的示例:有些方法做类似但有不同名称的方法。

以下是历史简介:

在JDK 1.0时,没有" Collection"框架。 StackVectorHashTable是Java提供的一些基本数据结构。

后来在JDK 1.2中, Collection 框架被添加到JDK中,并引入了标准接口(如ListMap)。

然而,在这些新的标准集合接口中,方法以不同的约定命名。命名约定的变化很可能受JDK 1.2中引入的Java Bean标准的影响。这些方法名称与旧StackVectorHashTable类中的名称不同。例如,它在原始类中被命名为empty(),但被命名为isEmpty() Collection接口。

为了使StackVectorHashTable与收藏框架兼容,StackVectorHashTable实施了相应的集合接口。同时,为了向后兼容,保留了旧方法。

因此"重复"你现在看到的方法。

答案 1 :(得分:0)

两个返回布尔值的唯一区别是isEmpty是指向矢量的同步点,而null不是指向堆栈的同步点