前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java高频面试题- 每日三连问?【Day13】 — 集合容器篇(五)

Java高频面试题- 每日三连问?【Day13】 — 集合容器篇(五)

作者头像
浩说编程
发布2022-02-28 13:56:53
1580
发布2022-02-28 13:56:53
举报
文章被收录于专栏:Java经验之谈Java经验之谈

问题导读

一、试比较 Queue 与 Deque 的区别?

二、请谈一下对 PriorityQueue 的认识?

三、Collection 和 Collections 有什么区别?

01

试比较 Queue 与 Deque 的区别?

正经回答:

Queue 是单端队列,只能从一端插入元素,另一端删除元素,实现上一般遵循先进先出(FIFO)规则。

Queue 扩展了 Collection 的接口,根据因为容量问题而导致操作失败后处理方式的不同可以分为两类方法:

一种在操作失败后会抛出异常,另一种则会返回特殊值。

Deque 是双端队列,在队列的两端均可以插入或删除元素。

Deque 扩展了 Queue 的接口, 增加了在队首和队尾进行插入和删除的方法,同样根据失败后处理方式的不同分为两类:

朋友圈分享一下

02

请谈一下对 PriorityQueue 的认识?

正经回答:

PriorityQueue 是在 JDK1.5 中被引入的, 其与 Queue 的区别在于元素出队顺序是与优先级相关的,即总是优先级最高的元素先出队。

这里列举其相关的一些要点:

PriorityQueue 利用了二叉堆的数据结构来实现的,底层使用可变长的数组来存储数据

PriorityQueue 通过堆元素的上浮和下沉,实现了在 O(logn) 的时间复杂度内插入元素和删除堆顶元素。

PriorityQueue 是非线程安全的,且不支持存储 NULL 和 non-comparable 的对象。

PriorityQueue 默认是小顶堆,但可以接收一个 Comparator 作为构造参数,从而来自定义元素优先级的先后。

03

Collection 和 Collections 有什么区别?

正经回答:

java.util.Collection 是一个集合接口(集合类的一个顶级接口),它提供了对集合对象进行基本操作的通用接口方法。

Collection 接口在 Java 类库中有很多具体的实现。Collection 接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有 List 与 Set。

Collections 则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。

- End -

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浩说编程 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正经回答:
  • 正经回答:
  • 正经回答:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档