java学习(java.util.Stack类)

stack是一个后进先出的堆栈,在Vector类的基础上扩展5个方法而来

depue(双端队列)比起stack具有更好的完整性和一致性,应该被优先使用

E push(E item):把项压入堆栈顶部。

E pop():移除堆栈顶部的对象,并作为此函数的值返回该对象。

E peek():查看堆栈顶部的对象,但不从堆栈中移除它。

boolean empty():测试堆栈是否为空。

int search(Object o):返回对象在堆栈中的位置,以 1 为基数。

Stack本身通过扩展Vector而来,而Vector本身是一个可增长的对象数组( a growable array of objects)那么这个数组的哪里作为Stack的栈顶,哪里作为Stack的栈底?

答案只能从源代码中寻找,jdk1.6:


案列:



构造方法 : public Stack() 创建一个空 Stack。

方法:  

1. public push  (item )  把项 压入栈顶。其作用与 addElement (item ) 相同。

参数 item 压入栈顶的项 。 返回: item 参数 ;

2. public pop () 移除栈顶对象,并作为函数的值 返回该对象。

返回:栈顶对象(Vector 对象的中的最后一项)

抛出异常 : EmptyStackException 如果堆栈式空的 

3. public peek() 查看栈顶对象而不移除它。

返回:栈顶对象(Vector 对象的中的最后一项)

抛出异常 : EmptyStackException 如果堆栈式空的 

4. public boolean empty (测试堆栈是否为空。)  当且仅当堆栈中不含任何项时 返回 true,否则 返回 false。

5. public int search  (object o)  返回对象在堆栈中位置,以 1 为基数, 如果对象 o是栈中的一项,该方法返回距离,栈顶最近的出现位置到栈顶的距离;栈中最上端项的距离为1,使用equals 方法比较 o 与 堆栈中的项

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容