前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ArrayDeque以及PriorityQueue的使用

ArrayDeque以及PriorityQueue的使用

作者头像
Java开发者之家
修改2021-09-01 10:55:48
3830
修改2021-09-01 10:55:48
举报
文章被收录于专栏:Java开发者之家Java开发者之家

# ArrayDeque的两种使用方式

Deque接口是Queue接口的子接口,它代表一个双端队列,该队列允许从两端来操作队列中的元素。Deque不仅可以当成双端队列使用,而且可以当成栈来使用。

ArrayDeque集合是Deque接口的实现类,它是一个基于数组的双端队列,创建Deque时同样可以指定一个numElements参数,该参数用于指定Object[]数组的长度;如果不指定该参数,Deque底层数组长度为16。

# 作为栈使用

  • 验证作为栈使用
代码语言:javascript
复制
	public void testStack() {
        ArrayDeque<String> stack = new ArrayDeque<String>();
        stack.push("The Times");
        stack.push("Economics");
        stack.push("the New York Times");
        //读取第一个元素,但不是出栈
        System.out.println(stack.peek());

        System.out.println(stack);

        //直接取第一个元素出栈
        System.out.println(stack.pop());

        System.out.println(stack);
    }
  • 验证结果
代码语言:javascript
复制
the New York Times
[the New York Times, Economics, The Times]
the New York Times
[Economics, The Times]

# 作为队列使用

  • 验证作为队列使用
代码语言:javascript
复制
	public void testQueue() {
        ArrayDeque<String> queue = new ArrayDeque<String>();
        queue.offer("The Times");
        queue.offer("Economics");
        queue.offer("the New York Times");

        //读队列第一个元素,但是不出队列
        System.out.println(queue.peek());

        System.out.println(queue);

        //读并且取出第一个元素
        System.out.println(queue.poll());

        System.out.println(queue);
    }
  • 验证结果
代码语言:javascript
复制
The Times
[The Times, Economics, the New York Times]
The Times
[Economics, the New York Times]

# PriorityQueue的使用

PriorityQueue是优先级队列,优先级可由new Comparator定义。

  • 验证
代码语言:javascript
复制
	public void testPriorityQueue() {
        PriorityQueue<String> priorityQueue = new PriorityQueue<>(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.length() - o2.length();
            }
        });
        priorityQueue.offer("student's book");
        priorityQueue.offer("teachers");
        priorityQueue.offer("employees");
        priorityQueue.offer("manager");

        while(!priorityQueue.isEmpty()) {
            System.out.println(priorityQueue.poll());
        }

    }
  • 验证结果
代码语言:javascript
复制
manager
teachers
employees
student's book
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # ArrayDeque的两种使用方式
    • # 作为栈使用
      • # 作为队列使用
      • # PriorityQueue的使用
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档