Java堆栈类中的empty()与isEmpty()
为什么Java中的Java堆栈类中的empty()与isEmpty(),java,Java,为什么Java中的Stack有一个empty()方法和通常的isEmpty()?所有Stack扩展的抽象类都有一个isEmpty()方法。我相信OP的问题更多的是:既然empty()和isEmpty()都在做同样的事情,为什么会有重复的方法 如果您仔细看一下,在向量、堆栈和哈希表中,有更多的方法使用不同的名称执行类似操作的示例 以下是简史: 在JDK1.0时代,Java中没有“集合”框架堆栈,向量,哈希表是Java提供的一些基本数据结构 后来在JDK1.2中,集合框架被添加到JDK中,并引入了标
Stack
有一个empty()
方法和通常的isEmpty()
?所有Stack
扩展的抽象类都有一个isEmpty()
方法。我相信OP的问题更多的是:既然empty()
和isEmpty()
都在做同样的事情,为什么会有重复的方法
如果您仔细看一下,在向量
、堆栈
和哈希表
中,有更多的方法使用不同的名称执行类似操作的示例
以下是简史:
在JDK1.0时代,Java中没有“集合”框架<代码>堆栈,向量
,哈希表
是Java提供的一些基本数据结构
后来在JDK1.2中,集合框架被添加到JDK中,并引入了标准接口(如List
,Map
)
然而,在这些新的标准集合接口中,方法是以不同的约定命名的。命名约定的变化很可能受到JDK1.2中引入的JavaBean标准的影响。这些方法名称与旧的堆栈
、向量
和哈希表
类中的方法名称不同。例如,它在原始类中被命名为empty()
,但在Collection
接口中被命名为isEmpty()
为了使Stack
、Vector
和HashTable
与采集框架兼容,Stack
、Vector
和HashTable
实现了相应的采集接口。同时,为了向后兼容,保留了旧方法
因此,您现在看到的是“复制”方法。两个返回布尔值唯一的区别是isEmpty同步指向向量,而empty不同步指向堆栈。文档说明了什么?什么是
empty()
的返回类型?两者都有返回类型boolean基本上是isEmpty()
方法是在集合
类(JDK1.2)中引入的,该类位于堆栈
类(JDK1.0)之后