java中的队(Queue)和栈(Stack)

原创 2013年12月05日 17:01:30

  看着编程思想第四版,爽的是里面的程序,当你理解到这个程序的牛逼之处时,就是你拍板叫好的那一刻,终于连追带赶看到了第十一章持有对象,被这扫描版伤透了眼。写完这个笔记,眼保健操是个好主意。

【队和栈特点实验】

package com.jay.knowledge.queue_study;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;

/**
 * @function: Queue的学习(对列,对,就是队列)  典型的先进先出的容器(传送带似)
 * @author:Jay
 * @date:2013-12-5
 */
public class Queue001 {
	public static void main(String[] args) {
		//queue不支持ArrayList,如下会报错
		//Queue<String> queue = new ArrayList<String>();
		//queue支持LinkedList
		/*
		Queue<String> queue = new LinkedList<String>();
		queue.add("one");
		queue.add("two");
		queue.add("three");
		queue.add("four");
		queue.add("five");
		queue.add("six");
		
		Iterator<String> iterator = queue.iterator();
		while (iterator.hasNext()) {
			String q = (String) iterator.next();
			//先进先出
			System.out.print("   "+q);
		}*/
		
		Queue<String> queue = new LinkedList<String>();
		queue.offer("one");
		queue.offer("two");
		queue.offer("three");
		queue.offer("four");
		queue.offer("five");
		queue.offer("six");
		System.out.println("------进队顺序------------");
		System.out.println("one two three four five six");
		System.out.println("------出队顺序------------");
		//,poll删除并移动指针,peek()查询
		System.out.print("  "+queue.poll());
		System.out.print("  "+queue.poll());
		System.out.print("  "+queue.poll());
		System.out.print("  "+queue.poll());
		System.out.print("  "+queue.poll());
		System.out.print("  "+queue.poll());
		System.out.println();
		//比较先进后出的Stack
		Stack<String> stack = new Stack<String>();
		//进栈
		stack.push("one");
		stack.push("two");
		stack.push("three");
		stack.push("four");
		stack.push("five");
		stack.push("six");
		System.out.println("------进栈顺序------------");
		System.out.println("one two three four five six");
		System.out.println("------出栈顺序------------");
		//出栈pop删除并移动指针,peek()只拿出最后进栈的值
		System.out.print("  "+stack.pop());
		System.out.print("  "+stack.pop());
		System.out.print("  "+stack.pop());
		System.out.print("  "+stack.pop());
		System.out.print("  "+stack.pop());
		System.out.print("  "+stack.pop());
	}
}


【运行结果】

------进队顺序------------
one two three four five six
------出队顺序------------
  one  two  three  four  five  six
------进栈顺序------------
one two three four five six
------出栈顺序------------
  six  five  four  three  two  one
【方法说明】

1.栈(Stack):

①peek():只取出栈顶值,但不会对栈进行操作,如果不断去做操作,最后的得到的值是相同,此值是最后进去的值。

②push(T):向栈中添加值。

③pop():出栈,并操作栈,取出后进去的值,并删除,然后移动指针。

2.队列(Queue)

①peek():只取出队列中的值,不会对栈进行操作,如果不断去做操作,最后的得到的值是相同,此值是最先进去的值。

②offer(T):向队列中添加值。

③poll():出队列,并操作队列,取出先进队列的值,并删除,然后移动指针。

版权声明:本文为博主原创文章,未经博主允许不得转载。

java中栈Stack类操作

/** * Stack类 * 栈:桶型或箱型数据类型,后进先出,相对堆Heap为二叉树类型,可以快速定位并操作 * Stack,支持泛型 * public class Stack ex...
  • typa01_kk
  • typa01_kk
  • 2015年05月01日 20:09
  • 9540

Java 实例 - 队列(Queue)用法

Java的学习网址:http://www.runoob.com/java/data-queue.html Java 实例 - 队列(Queue)用法 Java 实例 - 队列(Queu...
  • ly969434341
  • ly969434341
  • 2016年04月11日 16:57
  • 37785

java中对列表的添加或删除操作

DocumentListener 监听机制,常常用来对文本的监听,也就三种方法 /**  *方法说明:实现DocumentListener接口,必需实现的方法,对文本输入时会调用  */       ...
  • qq_33665647
  • qq_33665647
  • 2016年07月23日 19:16
  • 2305

java中对list集合中的数据按照某一个属性进行分组

java list分组。 list里面封装的都是实体对象或Map,现要按照对象的某个属性进行分组。...
  • liuxiao723846
  • liuxiao723846
  • 2015年06月16日 15:26
  • 13990

队列的创建 入队出队 Java数据结构与算法

队列的创建 入队出队 Java数据结构与算法 源代码: /** * * @author sunnyykn */ class Queue { private int maxSi...
  • sunnyykn
  • sunnyykn
  • 2010年07月17日 13:14
  • 3392

java中的队(Queue)和栈(Stack)

转载于:http://blog.csdn.net/u012049667/article/details/17143947  看着编程思想第四版,爽的是里面的程序,当你理解到这个程序的牛逼之处时,...
  • changlei_shennan
  • changlei_shennan
  • 2017年01月09日 14:07
  • 314

Java中的对象

Java是一种面向对象的语言,支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 每一个概念的详解都很长,涉及到的东西也很多,后面会慢慢介绍。我们先来理解下比较关键的类和对象: ...
  • aaaaazq
  • aaaaazq
  • 2017年09月05日 13:59
  • 140

深入理解Java中的面向对象

深入理解Java中的面向对象
  • a2011480169
  • a2011480169
  • 2016年08月03日 09:13
  • 4483

Java集合的Stack、Queue、Map的遍历

一、Map的遍历 import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * Map的...
  • w46434137
  • w46434137
  • 2013年06月01日 21:53
  • 1455

用数组和链表分别实现栈类stack,队queue

栈(stack)是一种常见数据结构,以后进先出(LIFO)著称。比如编译器用栈处理函数调用,保存被调用函数的参数和局部变量。当一个函数调用另一个函数时候,新的函数参数和局部变量被入栈。调用结束,占用的...
  • yanerhao
  • yanerhao
  • 2015年04月19日 16:52
  • 476
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中的队(Queue)和栈(Stack)
举报原因:
原因补充:

(最多只允许输入30个字)