Collection框架设计的失误:Stack!

原创 2004年09月18日 20:41:00

Stack是Java中Collection设计的重大失误,这个类绝对是垃圾,设计Stack这个类的人
当时一定是脑子发热了。众所周知,Stack实现的数据结构中的栈的功能,也就是后进先出,
看看Stack的声明吧:
public class Stack extends Vector

Vector就已经不是什么好东西了,这里还继承它?这里列出Stack中的方法,不考虑它的实现,
因为如果你要用这个东西,那我也无法可说。
public Object push(Object item)
public synchronized Object pop()
public synchronized Object peek()
public synchronized int search(Object o)
public boolean empty()

你可能会觉得这些方法没什么,可是当它继承了Vector,就意味着它没有价值了,不过这个类的
实现确实比较简单,有兴趣可以看看源码。我们知道Vector是实现了List接口的,Stack继承
Vector自然也实现了List接口。而事实上Stack不是List,甚至连Collection都不是。设计者是不是
为了节省代码呀才这样设计的呀,但是我们设计应该使接口最小化。如果这样也可以的话,
干脆Collection框架就用一个类实现好了!

Stack就应该只有上面几个方法,不应该有其他方法,而现有的设计可以把Stack当作Vector来用。
List stack = new Stack();
你看到这样的代码不会觉得很别扭吗?我强烈建议不要使用Stack!

.NET源码中的栈

.NET源码中的栈是基于数组实现的,
  • cuit
  • cuit
  • 2014年06月30日 00:54
  • 786

java基础巩固系列(九):持有对象之间的使用与关系(Iterable、Collection、List、Queue、Set、Map、Stack)

java中的持有对象之间的继承关系
  • u010800530
  • u010800530
  • 2015年01月17日 16:04
  • 1538

Java Collection Stack

栈只允许访问一个数据项:即最后插入的数据项。移除这个数据项后才能访问倒数第二个插入的数据项,依此类推。而Stack这个类就是实现这种数据结构的类,也就是说Stack这个类代表着last-in-firs...
  • u012410733
  • u012410733
  • 2016年12月13日 13:01
  • 216

【java】【java Collection】Stack

源代码 package java.util; /** * 先进后出 push pop peek empty search * The Stack class represents a las...
  • lzm18064126848
  • lzm18064126848
  • 2017年04月14日 16:57
  • 170

[笔记]软件框架设计的艺术

整理:fasiondog笔记思维导图下载地址:http://note.sdo.com/u/1517210336#/n/qrIHw~jy6hZFnM00401hmP思想未必是最新、最独特的,但一定是有用...
  • KongDong
  • KongDong
  • 2011年07月16日 22:55
  • 8106

《JavaScript框架设计(第2版)》之语言模块

本文摘自:人民邮电出版社异步图书《JavaScript框架设计(第2版)》 试读本书:http://www.epubit.com.cn/book/details/4849敲重点: ...
  • epubit17
  • epubit17
  • 2017年08月24日 17:32
  • 2084

mongodb Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js

1、若数据库出现如上不能连接的原因,可能是data目录下的mongod.lock文件问题,可以用如下命令修复:   mongod --repair(切换到bin目录下执行)     或者直接删...
  • Moonlightes
  • Moonlightes
  • 2017年03月15日 10:20
  • 263

决策失误

1)按照你的家庭状况,学工比学文更有可能在短时间内改变的你的家庭状况;因为工科回报的速度和效率比文科快而且高2)按照你的家庭状况...
  • luotuo203
  • luotuo203
  • 2006年03月31日 11:26
  • 533

失误

今天去买了一本书。是数据库和网页设计的集成版,本来以为是jsp+SQL,但是回来一看竟然是asp,失误啊! ...
  • minminhaipi
  • minminhaipi
  • 2008年03月31日 14:39
  • 208

java的collection类使用

collection中的常用方法: 增加: 1:add() 将指定对象存储到容器中                       add 方法的参数类型是Object 便于接收任意对象 2:addAl...
  • u010889616
  • u010889616
  • 2016年03月01日 21:59
  • 1769
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Collection框架设计的失误:Stack!
举报原因:
原因补充:

(最多只允许输入30个字)