栈的java源码实现
来源:互联网 发布:淘宝隐藏券淘客 编辑:程序博客网 时间:2024/06/05 20:59
栈的java源码实现,代码如下:
package com.threetop.www;import java.util.*;/** * java源码实现栈的操作 * @author wjgs * @param <E> */public class 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; public static void main(String[] args) { Stack<String> stack=new Stack<String>(); stack.push("a"); stack.push("b"); stack.push("C"); System.out.println(stack.pop()); System.out.println(stack.search("b")); }}
0 0
- 栈的java源码实现
- JAVA源码中线性表,栈和队列的实现及其对应的源码文件
- java实现的LZW 压缩算法源码
- java中实现Math.sqrt()的源码
- B树的java源码实现
- java hashmap的put函数实现源码
- 模拟hibernate实现的JAVA源码
- Java源码---HashMap的底层实现
- Java实现的计算器(完整源码)
- java 基础:Blocking Queues的源码实现
- Java源码-AWT菜单的实现
- Java源码:ArrayList的实现原理
- 散列表的java源码实现
- Java五子棋的实现(附源码)
- java中ArrayList的源码实现
- Java swing实现的俄罗斯方块小游戏源码
- java swing实现的魔方小游戏源码
- JAVA 实现容器源码
- RabbitMQ实现异步及同步RPC
- 557. Reverse Words in a String III
- No releases for package "pear/Net_SMTP" exist 错误的解决
- shell3 source 命令和./ 命令的区别 &shell编程:EOF
- matplotlib-绘制精美的图标 第一节 快速绘图(I)
- 栈的java源码实现
- 51nod-1391:01串
- 朴素贝叶斯分类器
- mac 下redis启动不了
- 1499: 梯田
- 警告框--JavaScript触发警告框
- 打印Activity任务栈脚本:adb shell dumpsys activity
- Xilinx ISE软件 模拟组合逻辑入门 4位加法器
- 通过几个Hello World感受.NET Core全新的开发体验