empty() vs isEmpty() in Java Stack class

I believe OP's question is more on : why there are duplicated methods, given empty() and isEmpty() are doing the same thing?

If you take a closer look, in Vector, Stack and HashTable, there are more examples of methods doing similar thing with different names.

Here is the brief history:

At the time of JDK 1.0, there was no "Collection" framework in Java. Stack, Vector, HashTable were some of the basic data structures provided by Java.

Later in JDK 1.2, Collection framework was added to JDK, and standard interfaces (like List, Map) were introduced.

However in these new standard collection interfaces, methods were named in a different convention. The change in naming convention was most probably influenced by Java Bean standard introduced also in JDK 1.2. These method names were different from those in old Stack, Vector and HashTable classes. For example, it was named empty() in original class but was named isEmpty() of Collection interface.

In order to make Stack, Vector and HashTable compatible with Collection framework, Stack, Vector and HashTable has implemented its corresponding Collection interfaces. On the same time, old methods were kept for the sake of backward compatibility.

Hence the "duplicated" methods you see now.

Tags:

Java