Java中的栈Stack
2015-08-11 14:43
381 查看
栈的特点:
1.栈(Stack)实现了一个后进先出(LIFO)的数据结构。只能在一端进行插入(称为"压栈") 或删除 (称为"出栈")数据的操作。当你从栈中取元素的时候,就从栈顶取一个元素。也就是,最后进栈的元素最先被取出。不是也有先进先出的数据结构局吗?有,但是这个Stack是实现了先进后出!
2.栈是Vector的子类。 public class Stack extends vector
3.栈只定义了默认构造函数:Stack(),用来创建一个空栈。 栈除了包括由Vector定义的所有方法,也定义了自己的一些方法。
注:注意上面的peek()方法和pop()方法的区别!
下面的程序说明这个集合所支持的几种方法
import java.util.Stack;
public class StackTest {
public static void main(String[] args) {
Stack<String> stack = new Stack<String>();
System.out.println("now the stack is " + isEmpty(stack));
stack.push("1");
stack.push("2");
stack.push("3");
stack.push("4");
stack.push("5");
System.out.println("now the stack is " + isEmpty(stack));
System.out.println(stack.peek());
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.search("2"));
}
public static String isEmpty(Stack<String> stack) {
return stack.empty() ? "empty" : "not empty";
}
}
输出为:
now the stack is not empty
5
5
4
2
1.栈(Stack)实现了一个后进先出(LIFO)的数据结构。只能在一端进行插入(称为"压栈") 或删除 (称为"出栈")数据的操作。当你从栈中取元素的时候,就从栈顶取一个元素。也就是,最后进栈的元素最先被取出。不是也有先进先出的数据结构局吗?有,但是这个Stack是实现了先进后出!
2.栈是Vector的子类。 public class Stack extends vector
3.栈只定义了默认构造函数:Stack(),用来创建一个空栈。 栈除了包括由Vector定义的所有方法,也定义了自己的一些方法。
序号 | 方法描述 |
---|---|
1 | boolean empty() 测试栈是否为空。 |
2 | Object peek( ) 查看栈顶部的对象,但不从堆栈中移除它。 |
3 | Object pop( ) 查看顶部对象,并移除栈顶部的对象,并作为此函数的值返回该对象。 |
4 | Object push(Object element) 把项压入栈顶部。 |
5 | int search(Object element) 返回对象在栈中的位置,以 1 为基数。 |
实例
下面的程序说明这个集合所支持的几种方法import java.util.Stack;
public class StackTest {
public static void main(String[] args) {
Stack<String> stack = new Stack<String>();
System.out.println("now the stack is " + isEmpty(stack));
stack.push("1");
stack.push("2");
stack.push("3");
stack.push("4");
stack.push("5");
System.out.println("now the stack is " + isEmpty(stack));
System.out.println(stack.peek());
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.search("2"));
}
public static String isEmpty(Stack<String> stack) {
return stack.empty() ? "empty" : "not empty";
}
}
输出为:
now the stack is not empty
5
5
4
2
相关文章推荐
- 算法题(JAVA实现)——网易校招2015
- myeclipse安装svn插件的多种方式
- android学习笔记之使用Eclipse搭建web服务器实现Android客户端登录
- 浅析Java中的final关键字
- struts2 标签 和 c标签的页面数据显示
- java 的对象强制转换后的调用
- .Java程序员从笨鸟到菜鸟之(四十七)细谈struts2(九)内置拦截器和自定义拦截器详解(附源码) 分类: 学习专区 框架Struts2 Java程序员从笨鸟到菜鸟 2012-05-08 12:
- java时间
- java的math常用方法
- How to Monitor Java Garbage Collection
- JavaSE----面向对象(形式参数和返回值研究、包、修饰符、内部类)
- java程序设计之循环链表
- java IO 总结 (待续)
- 遇到问题----java.lang.IllegalStateException: getOutputStream() has already been called for this response
- 遇到问题----java.lang.IllegalStateException: getOutputStream() has already been called for this response
- jdk,服务端模拟客户端发送请求工具类
- java中多继承问题
- java中static{}语句块详解 Class.forName()方法
- Java 接口和抽象类区别
- ACOD:如何在eclipse中使用离线文档中的中文Javadoc