\t
Deque
还提供有 push()
和 pop()
等其他方法 , 可用于模拟栈 。29.说说ArrayDeque 与 LinkedList 的区别?
ArrayDeque
和 LinkedList
都实现了 Deque
接口 , 两者都具有队列的功能 , 也都可以实现栈 。 连着区别:- ArrayDeque 是基于 可变长的数组和双指针 来实现 , 而 LinkedList 则通过 链表 来实现 。
- ArrayDeque 不支持存储
NULL
数据 , 但 LinkedList 支持 。
- ArrayDeque 是在
JDK1.6
才被引入的 , 而LinkedList 早在JDK1.2
时就已经存在 。
- ArrayDeque 插入时可能存在扩容过程 不过均摊后的插入操作依然为 O(1) 。 虽然 LinkedList 不需要扩容 , 但是每次插入数据时均需要申请新的堆空间 , 均摊性能相比更慢 。
ArrayDeque
来实现队列要比 LinkedList
更好 。30.说一下 HashSet、LinkedHashSet 和 TreeSet 三者的异同?
HashSet
、 LinkedHashSet
和 TreeSet
都是 Set
接口的实现类 ,都能保证元素唯一 , 并且都不是线程安全的 。 他们的不同点:- HashSet、LinkedHashSet 和 TreeSet 的主要区别在于底层数据结构不同:
HashSet
的底层数据结构是 哈希表 (基于HashMap
实现)
LinkedHashSet
的底层数据结构是 链表和哈希表 , 元素的插入和取出顺序满足 FIFO
TreeSet
底层数据结构是 红黑树 , 元素是有序的 , 排序的方式有自然排序和定制排序
- 底层数据结构不同又导致这三者的应用场景不同:
HashSet
LinkedHashSet
TreeSet
我也为大家整理了一套2022Java面试题 , 需要的小伙伴们可以私信【面试】领取
- 顶固集创与中国电信研究院、中山大学战略合作|定制快讯| 中国电信研究院
- 因全球范围内专利发明表现突出 蚂蚁集团入选2022年《全球百强
- 苹果|不用iPhone!苹果员工集体要换安卓手机:原因曝光
- javascript|JavaScript设置页面元素的滚动条一直最下方
- 安卓|不用iPhone!苹果员工集体要用安卓手机:原因是为防公司窥探
- 集成电路|春节后这些行业人才需求看涨,上海求职者最“卷”
- 监管部门|警惕以元宇宙名义非法集资
- 小米投资光莱弗利科技,经营范围含集成电路销售
- exynos|三星芯片遭手机部门嫌弃?集团内部讨论,可能砍掉Exynos项目!
- 集团企业采购的高端商务本有哪些门道?