Java中的栈和队列


一.队列

队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。

JDK中,LinkedList类实现了Queue接口,可以当Queue使用,以下演示队列(Queue)的用法:
import java.util.Arrays;
import java.util.Stack;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;

public class demo {
	// 尽量使用offer()方法添加元素,使用poll()方法移除元素。add()和remove()方法在失败的时候会抛出异常。
	public static void main(String[] args) {
		// 创建队列
		Queue<Integer> q = new LinkedList<>();
		Queue<String> q1 = new LinkedList<String>();
		// 添加元素
		q.offer(1);
		q1.offer("a");
		q1.offer("b");
		// 输出队列元素
		System.out.print("输出队列q1元素: ");
		for (String s : q1) {
			System.out.print(s + " ");
		}
		System.out.println();
		// 查询第一个元素
		System.out.println("the first element is: " + q1.element());
		System.out.println("the first element is: " + q1.peek());
		System.out.print("输出队列q1元素: ");
		for (String s : q1) {
			System.out.print(s + " ");
		}
		System.out.println();
		// 移除第一个元素
		q1.poll();
		System.out.print("输出队列q1元素: ");
		for (String s : q1) {
			System.out.print(s + " ");
		}
	}
}

offer,add 区别:添加元素

一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。

这时新的 offer 方法就可以起作用了。它不是对调用 add() 方法抛出一个 unchecked 异常,而只是得到由 offer() 返回的 false。

poll,remove 区别:移除元素

remove() 和 poll() 方法都是从队列中删除第一个元素。remove() 的行为与 Collection 接口的版本相似, 但是新的 poll() 方法在用空集合调用时不是抛出异常,只是返回 null。因此新的方法更适合容易出现异常条件的情况。

peek,element区别:查询头部元素

element() 和 peek() 用于在队列的头部查询元素。与 remove() 方法类似,在队列为空时, element() 抛出一个异常,而 peek() 返回 null。

总结:尽量使用offer()方法添加元素,使用poll()方法移除元素,使用peek()方法查询头部元素。add()和remove()和element()方法在失败的时候会抛出异常。

二.栈

栈是一种只能在一端进行插入或删除操作的线性表。(先进后出线性表)
Stack<String> staffs =newStack<String>();

java中的Stack继承Vector

import java.util.Stack;

public class demo {
	public static void main(String[] args) {
		// 创建栈
		Stack s = new Stack();
		// empty()判断栈是否为空
		System.out.println(s.empty());
		// push()进栈
		s.push(new Integer(1));
		s.push(2);
		// peek()查找栈的顶值
		System.out.println(s.peek());
		// pop()出栈
		s.pop();
		System.out.println(s.peek());
	}
}



  - - - - - 2019.12.22
全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 10:52
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务