1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-08-01 16:28:03 +08:00

Update 这几道Java集合框架面试题几乎必问.md

This commit is contained in:
SnailClimb 2018-11-14 14:32:32 +08:00 committed by GitHub
parent b7a462e0bc
commit 545d735f0f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -44,8 +44,7 @@ public interface RandomAccess {
``` ```
ArraysList 实现了 RandomAccess 接口, 而 LinkedList 没有实现。为什么呢我觉得还是和底层数据结构有关ArraysList 底层是数组,而 LinkedList 底层是链表。数组天然支持随机访问,时间复杂度为 O1所以称为快速随机访问。链表需要遍历到特定位置才能访问特定位置的元素时间复杂度为 On所以不支持快速随机访问。ArraysList 实现了 RandomAccess 接口,就表明了他具有快速随机访问功能。 RandomAccess 接口只是标识,并不是说 ArraysList 实现 RandomAccess 接口才具有快速随机访问功能的! ArraysList 实现了 RandomAccess 接口, 而 LinkedList 没有实现。为什么呢我觉得还是和底层数据结构有关ArraysList 底层是数组,而 LinkedList 底层是链表。数组天然支持随机访问,时间复杂度为 O1所以称为快速随机访问。链表需要遍历到特定位置才能访问特定位置的元素时间复杂度为 On所以不支持快速随机访问。ArraysList 实现了 RandomAccess 接口,就表明了他具有快速随机访问功能。 RandomAccess 接口只是标识,并不是说 ArraysList 实现 RandomAccess 接口才具有快速随机访问功能的!
**补充内容:RandomAccess接口**
**下面再总结一下 list 的遍历方式选择:** **下面再总结一下 list 的遍历方式选择:**
- 实现了RadmoAcces接口的list优先选择普通for循环 其次foreach, - 实现了RadmoAcces接口的list优先选择普通for循环 其次foreach,