Java中栈和队列

栈(Stack)–class

入栈 public E push(E item)
出栈 public synchronized E pop()
观察栈顶元素 public synchronized E peek()

实例:

import java.util.Stack;

public class TestStack {
    public static void main(String[] args) {
        Stack<String> stack=new Stack<>();

        //进栈
        stack.push("happy");
        stack.push("share");
        stack.push("insist");
        stack.push("amazing");
        //出栈
        System.out.println(stack.pop()); //amazing

        //观察栈顶元素
        System.out.println(stack.peek());//insist

        //遍历栈
        while(!stack.isEmpty())
        {
            System.out.print(stack.pop()+"<-"); //insist<-share<-happy<-
        }
    }
}

队列(Queue)–interface
注意:队列是一个接口,需要用子类实现;
队列为空,会返回null

进队列 public boolean add()
出队列 public E poll()
观察队头:public E peek()
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Queue;

//如果Queue没有元素,返回null,而栈会有异常
public class TestQueue {
    public static void main(String[] args) {
        //Queue是接口
        Queue<String> queue=new LinkedList<>();

        //进队列
        queue.add("happy");
        queue.add("share");
        queue.add("insist");
        queue.add("amzing");
        //出队列
        System.out.println(queue.poll()); //happy
        //观察队头
        System.out.println(queue.peek()); //share

        //遍历队列
        while(!queue.isEmpty())
        {
            System.out.print(queue.poll()+"->"); //share->insist->amzing->null (null为下一个语句结果)
        }
        System.out.println(queue.peek());  //如果队列没有元素,将会返回null

        //遍历队列使用迭代器----迭代器遍历顺序和元素放入顺序一样,队列先进先出,可以使用迭代器
        Iterator<String> iterator=queue.iterator(); //取得队列的迭代器
        while(iterator.hasNext())
        {
            System.out.print(iterator.next()+"->"); //share->insist->amzing->
        }
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值