大家觉得Java里面的Stack类设计有问题吗?
今天去京东面试了,遇到一道面试题,大意如下:Stack类是通过Vector实现的,有部分开发者认为该类的设计存在问题,你对这个问题怎么看?
这道题我空着没做,我从来就没听说过这种说法,我不晓得怎么回答。反正我没觉得这个类设计有什么问题,有问题也早改了吧。也许是我孤陋寡闻,水平差。有高手来围观一下吧,看看你们有什么高见。
------解决方案--------------------纯粹从理论上的stack来说,
它确实不应该提供这么多vector的方法
只看对栈顶进行push pop peek就行了
从实际上来讲,复用vecotor的现成方法来实现
push pop peek
有现成的,为啥不用呢
------解决方案--------------------vector底层用数组实现的,push 、pop 性能大大降低,Stack最好使用链表实现。
所以很少有人使用java提供的Stack类
------解决方案--------------------