public interface RandomAccess{
}
- RandAccess中什么都没有定义,只是标识实现这个接口的类具有随机访问属性功能。
- ArrayList实现了RandomAccess接口,而LinkedList没用实现。因为ArrayList底层是数组,LinkedList底层是链表。数组天然支持随机访问,时间复杂度为O(1),所有称为快速随机访问。链表需要遍历到特定位置才能访问到特定位置的元素,时间复杂度为O(n),不支持快速随机访问。
list的遍历方式选择: - 实现RandomAccess接口的list优先选择for循环,其次foreach;
- 未实现RandomAccess接口的list,优先选择iterator遍历;