恶补java(十一)-------Stack类的使用

package com.gc.Stack;
/**
 * java中stack的使用方法,堆栈是一种"后进先出"(LIFO)的数据结构,只能在一端进行插入(称为"压栈")或删除(称为"出栈")数据的操作.
 * Java中,使用java.util.Stack类的构造方法创建对象
 * public class Stack extends vector
 * 构造方法:public Stack()创建一个空Stack
 * 1.public push(item)把item压入栈顶.其作用与addElement(item)相同
 * 2.public pop移除栈顶对象,并作为函数的值返回该对象
 * 3.public peek()查看栈顶对象而不移除它
 * 4.public boolean empty()测试堆栈是否为空
 * 5.public int search(Object object)返回对象在堆栈中的位置
 */
import java.util.Enumeration;
import java.util.Stack;

/**
 * 学习Stack的用法
 * @author Android将军
 *
 */
public class StackTest {
	public static void main(String[] args) {
		//创建堆栈对象
		Stack stack=new Stack();
		System.out.println("aaaa,bbbb,cccc三个元素入栈");
		//向栈中压入字符串aaaa
		stack.push("aaaa");
		//显示栈中的所有元素
		printStack(stack);
		stack.push("bbbb");
		printStack(stack);
		stack.push("cccc");
		printStack(stack);
		String s=new String("aaaa");
		System.out.println("元素aaaa在堆栈的位置"+stack.search(s));
		s=new String("bbbb");
		System.out.println("元素bbbb在堆栈的位置"+stack.search(s));
		System.out.println("aaaa,bbbb,cccc三个元素出栈");
		System.out.println("元素"+stack.pop()+"出栈");
		printStack(stack);
		System.out.println("元素"+stack.pop()+"出栈");
		printStack(stack);
		System.out.println("元素"+stack.pop()+"出栈");
		printStack(stack);

	}
	private static void printStack(Stack stack)
	{
		if(stack.empty())
		{
			System.out.println("堆栈是空的,没有元素");
		}
		else
		{
			System.out.print("堆栈中的元素:");
			//得到Stack中的枚举对象
			Enumeration items=stack.elements();
			//显示枚举(stack)中的所有元素
			while(items.hasMoreElements())
			{
				System.out.print(items.nextElement()+"");
			}
		}
		System.out.println();//换行
	}
}

执行效果图如下:

转载请注明出处:http://blog.csdn.net/android_jiangjun/article/details/39183891

时间: 2024-08-04 14:45:03

恶补java(十一)-------Stack类的使用的相关文章

恶补java(十)---泛型与集合的再学习

其余的就不多说了,一切都在代码中 package com.gc.generic; /** * JDK5 之前集合对象使用问题: * 1.向集合添加任何类型对象 * 2.从集合取出对象时,数据类型丢失,使用与类型相关方法,强制类型转换 * 存在安全隐患 * * ***************************** * * JDK5中的泛型:允许程序员使用泛型技术限制集合的处理类型 * List<String> list=new ArrayList<String>(); * 从而

java.util.Stack类中的peek()方法

java.util.stack类中常用的几个方法:isEmpty(),add(),remove(),contains()等各种方法都不难,但需要注意的是peek()这个方法. peek()查看栈顶的对象而不移除它. import java.util.Stack; public class MyStack1 { private Stack<Integer> stackData; private Stack<Integer> stackMin; public MyStack1(){ t

Java的Stack类实现List接口真的是个笑话吗

今天在网上闲逛时看到了这样一个言论,说“Java的Stack类实现List接口的设计是个笑话”. 当然作者这篇文章的重点不是这个,原本我也只是一笑置之,然而看评论里居然还有人附和,说“Java那种Stack的设计作为笑话,差不多可以算公案了”,我就有点不淡定了,为什么.什么时候“作为笑话”的并且“差不多可以算公案”了呢? 因此我决定写一篇文章来谈谈这个问题. 接口是什么 狭义地讲,接口就是一个类所定义的方法(方法名.参数.返回值).一个类提供了Foo方法,其他类就可以调用它.广义上讲,接口可以理

恶补Java(十三)之Java IO-----File类的用法

恶补Java---JavaI/O部分之File类的用法(笔记) 在java中,I/O(输入/输出)是比较乏味的事情,因为看不到明显的运行效果,但输入/输出是所有程序都必需的部分--使用输入机制,允许程序读取外部数据(包括来自磁盘.光盘等存储设备的数据).用户输入数据:使用输出机制,允许程序记录运行状态,将程序数据输出到磁盘.光盘等存储设备中. Java的I/O通过java.io包下的类和接口来支持,在java.io包下主要包括输入.输出两种IO流,每种输入.输出流又可分为字节流和字符流两大类.其

java.util.Stack类简介

Stack是一个后进先出(last in first out,LIFO)的堆栈,在Vector类的基础上扩展5个方法而来 Deque(双端队列)比起Stack具有更好的完整性和一致性,应该被优先使用 E push(E item)      把项压入堆栈顶部. E pop()        移除堆栈顶部的对象,并作为此函数的值返回该对象. E peek()          查看堆栈顶部的对象,但不从堆栈中移除它. boolean empty()         测试堆栈是否为空. int sea

Java中的栈:java.util.Stack类

public class Stack<E>extends Vector<E>Stack 类表示后进先出(LIFO)的对象堆栈.它通过五个操作对类 Vector 进行了扩展 ,允许将向量视为堆栈.它提供了通常的 push 和 pop 操作,以及取堆栈顶点的 peek 方法.测试堆栈是否为空的 empty 方法.在堆栈中查找项并确定到堆栈顶距离的 search 方法.  方法 使用说明 boolean empty() 测试堆栈是否为空 E peek() 查看堆栈顶部的对象,但不从堆栈移

Java实现Stack类

import java.util.Iterator; import java.util.NoSuchElementException; import java.util.Scanner; public class Stack<Item> implements Iterable<Item> { private int N; private Node<Item> first; private static class Node<Item> { private I

Core Java (十一) Java 继承,类,超类和子类

Core Java (十一) Java 继承,类,超类和子类 标签: javaJavaJAVA 2013-01-22 17:08 1274人阅读 评论(0) 收藏 举报  分类: java(58) 读书笔记(46)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 继承关系 两个类之间存在三种关系: 依赖,uses-a,如果一个类的方法操纵另一个对象,我们就说一个类依赖于另一个类. 聚合(关联),has-a,一个对象包含另外一个对象,聚合关系意味着类A的对象包含类B的对象

基于数组实现Java 自定义Stack栈类及应用

栈是存放对象的一种特殊容器,在插入与删除对象时,这种结构遵循后进先出( Last-in-first-out,LIFO)的原则.java本身是有自带Stack类包,为了达到学习目的已经更好深入了解stack栈,自己动手自建java stack类是个很好的学习开始: 自建Java Stack 类 Stack 类: 1 package com.stack; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 6 /** 7 * St