集合类Stack的用法
来源:互联网 发布:灰盒测试知乎 编辑:程序博客网 时间:2024/06/07 13:25
查看源码我们知道Stack继承于Vector,有push方法用于存值,栈的特点先进后出。pop方法用于取值并移除,peek方法只用于查看不移除。
search查看下标,empty判断是否空
publicclass Stack<E> extends Vector<E> { /** * Creates an empty Stack. */ public Stack() { } /** * Pushes an item onto the top of this stack. This has exactly * the same effect as: * <blockquote><pre> * addElement(item)</pre></blockquote> * * @param item the item to be pushed onto this stack. * @return the <code>item</code> argument. * @see java.util.Vector#addElement */ public E push(E item) { addElement(item); return item; } /** * Removes the object at the top of this stack and returns that * object as the value of this function. * * @return The object at the top of this stack (the last item * of the <tt>Vector</tt> object). * @throws EmptyStackException if this stack is empty. */ public synchronized E pop() { E obj; int len = size(); obj = peek(); removeElementAt(len - 1); return obj; } /** * Looks at the object at the top of this stack without removing it * from the stack. * * @return the object at the top of this stack (the last item * of the <tt>Vector</tt> object). * @throws EmptyStackException if this stack is empty. */ public synchronized E peek() { int len = size(); if (len == 0) throw new EmptyStackException(); return elementAt(len - 1); } /** * Tests if this stack is empty. * * @return <code>true</code> if and only if this stack contains * no items; <code>false</code> otherwise. */ public boolean empty() { return size() == 0; } /** * Returns the 1-based position where an object is on this stack. * If the object <tt>o</tt> occurs as an item in this stack, this * method returns the distance from the top of the stack of the * occurrence nearest the top of the stack; the topmost item on the * stack is considered to be at distance <tt>1</tt>. The <tt>equals</tt> * method is used to compare <tt>o</tt> to the * items in this stack. * * @param o the desired object. * @return the 1-based position from the top of the stack where * the object is located; the return value <code>-1</code> * indicates that the object is not on the stack. */ public synchronized int search(Object o) { int i = lastIndexOf(o); if (i >= 0) { return size() - i; } return -1; } /** use serialVersionUID from JDK 1.0.2 for interoperability */ private static final long serialVersionUID = 1224463164541339165L;}
我们来看一下结果:
//栈Stack<String> stack=new Stack<String>();stack.push("123");stack.push("qwe");stack.push("qqwe");//只是取出来看/*System.out.println("remove object is:"+stack.peek());*///取出来看并移除System.out.println("remove object is:"+stack.pop());//查看结果System.out.println("Element after remove:"+stack);
控制台:
peek()的结果:
remove object is:qqwe
Element after remove:[123, qwe, qqwe]
pop()的结果:
remove object is:qqwe
Element after remove:[123, qwe]
0 0
- 集合类Stack的用法
- java进阶(4)集合类:ArrayList和 LinkedList,Vector 和stack,HashMap的基本用法
- java 集合(set、list、map、stack、queue)的用法
- 【集合类分析】Stack
- Java中Stack类的用法
- stack栈的用法
- stack的基本用法
- java集合类Stack类
- 我的笔记 Vector 和 Stack 集合类
- 集合类的几个用法
- 集合类Map的用法
- 集合类的一般用法
- 集合-Stack
- STL中stack的用法
- <stack>,<queue>,<vector>的用法
- STL中stack的用法
- Vector和Stack的用法
- STL中stack的用法
- linux内核空间内存管理基本架构
- utf-8中的汉字占多少个字节
- UVA11806: Composite Prime (容斥 & 组合数)
- Numpy入门——Python数据分析mooc笔记
- Unity3D手游开发日记(10)
- 集合类Stack的用法
- ubuntu 搭建 svn服务器,使用http方式访问
- 说说Servlet 生命周期、工作原理
- 设置自己的sleep函数
- 二叉树之用java语言实现
- 基于 Django1.10 文档的深入学习(17)——Customizing authentication 之 Custom users and permissions
- c++智能指针
- 各种查找算法分析
- 排序算法之冒泡排序