测试 Queue and Deque 示例

  1. 线性表:多个元素的有序集合

  2. 链表:非连续的、非顺序的

  3. Queue:理解成特殊的线性表,比方说 排队打饭,一端进、一端出,遵循先进先出原则;常用操作方法有: offer(入队)、poll(出队)、peek(返回队首元素),这里注意一下 poll 和 peek 区别: poll 删除队首元素并返回,peek返回队首元素但并不删除。

  4. Deque: double end queue 双端队列,也就是 2端都可以 入队和出队,遵循先进后出原则;常用操作方法有:push(入队)、pop(出队)、peek(返回队首元素),这里也需要注意一下 pop 和 peek 区别:pop 删除队首元素并返回,peek返回队首元素但并不删除。

  5. 具体示例代码如下:

package queue;

import java.util.Deque;
import java.util.LinkedList;
import java.util.Queue;

import org.junit.Test;

public class Queue1 {


    /**
     *  queue 遵循先进先出原则, 
     *  offer 入队, poll 出队,peek 返回队首元素,但并不删除
     *  note: poll and pop 删除队首元素并返回
     */
    @Test
    public void testQueue(){
        Queue<String> queue = new LinkedList<String>();
        queue.offer("a");
        queue.offer("b");
        queue.offer("c");

        System.out.println("list:" + queue);

        String poll = queue.poll();
        System.out.println("poll:" + poll);
        System.out.println("list:" + queue);

        String peek = queue.peek();
        System.out.println("peek:" + peek);

        while(queue.size() > 0){
            System.out.println("poll element:" + queue.poll());
        }
    }

    /**
     * Deque: double end queue, 遵循先进后出原则
     * push 入队, pop 出队, peek 返回队首元素,但并不删除
     * note:pop 删除队首元素并返回
     */
    @Test
    public void testDeque(){

        Deque<String> deque = new LinkedList<String>();
        deque.push("da");
        deque.push("db");
        deque.push("dc");
        System.out.println("deque:" + deque);

        String pop = deque.pop();
        System.out.println("pop:" + pop);

        String peek = deque.peek();
        System.out.println("peek:" + peek);

        while(deque.size() > 0){
            System.out.println("deque pop:" + deque.pop());
        }

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值