为什么Stack在JDK中扩展Vector?

San*_*hra 2 java oop

Stack不是Vector那么为什么Stack类的扩展(有关系)在JDK Vector类,堆栈想将工作与push()pop()操作,但因为它扩展矢量我能够做的add()remove()操作在堆栈。

我认为应该扩展Vector类,而Stack类应该使用Vector类作为组合。

Bas*_*que 5

过时的班级

双方StackVector附带了Java的第一个版本。由于当时的互联网狂热,Java提前赶到了市场。

与那些最早的Java版本捆绑在一起的某些类,例如日期时间类,并不是经过深思熟虑的。他们没有受到同行评审和公众审查,因为后来的图书馆,例如通过JAva社区流程以及开源项目和行业联盟项目制作的一些图书馆。

Java Collections框架

Java集合框架取代了这两个类。同样,java.time框架取代了旧的日期时间类,例如java.util.Date/ .Calendar。旧类保留在Java中,以便与现有应用程序向后兼容,但不应在新代码中使用。

Stack类文档讲述了这一点,清楚地说,你应该改为使用的实现Deque接口。