在Java中RandomAccess,CloneAble ,和Seriablizable一样,都是标志性接口,不需要任何实现,只是用来表明其实现类具有某种特质,
CloneAble : 可以被拷贝
RandomAccess : 可以随机存取
Seriablizable : 被序列化
Java中的foreach语法是iterator(迭代器)的变形用法
因为ArrayList实现了RandomAccess接口(随机存取接口),这也就标志着ArrayList是一个可以随机存取的列表,也就是说两个位置相连的元素之间没有相互依赖和引用关系,可以随机访问和存储
以上两方面综合起来,ArrayList使用下标方式遍历列表速度更快
------------------------------------------------------------
LinkedList(双向链表),两个位置相连的元素之间是有关联的(不是随机存取的,而是有序存取的),此时使用foreach将效率更高
------------------------------------------------------------
subList()产生的列表只是一个视图,所有的修改操作直接作用在原列表
new ArrayList<T>(Collection c)则是通过数则的copyOf操作,新生成的列表,和原列表没有任何关系