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.