我相信OP的问题更多的是:为什么有重复的方法,给予empty()和isEmpty()正在做同样的事情?
如果仔细观察,在Vector,Stack和HashTable中,还有更多的例子:有类似的东西,但名称不一样的方法.
以下是历史简介:
在JDK 1.0的时候,没有像“Collection”框架那样的东西. Stack,Vector,HashTable是Java提供的一些基本数据结构.
后来在JDK 1.2中,将Collection框架添加到JDK中,并引入了标准接口(如List,Map).
然而,在这些新的标准集合接口中,方法以不同的约定命名.命名约定的变化最受JDK 1.2引入的Java Bean标准的影响.这些方法名称与旧的Stack,Vector和HashTable类不同.例如,它在原始类中被命名为empty(),但被称为Collection接口的isEmpty().
为了使Stack,Vector和HashTable与Collection框架兼容,Stack,Vector和HashTable已经实现了其对应的Collection接口.同时,为了向后兼容,保留了旧的方法.
因此,您现在看到的“重复”方法.