首先,你要理解List的共性
List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。
List集合支持对元素的增、删、改、查。
恰好这些四个功能的效果就是ArrayList跟LinkedList的区别体现
然后他的子类:ArrayList,LinkedList,Vector各自的特点。
ArrayList:底层的数据结构是数组,线程不同步,ArrayList替代了Vector,查询元素的速度非常快。
LinkedList:底层的数据结构是链表,线程不同步,增删元素的速度非常快。
Vector:底层的数据结构就是数组,线程同步的,Vector无论查询和增删都巨慢。(这个除了举枚)
数组结构:
元素:O-O-O-O-O-O-O-O
索引:1 2 3 4 5 6 7 8
如上图,当需要查询的时候直接查询下标既可,效率会更快。但是需要在中间添加或删除的话,添加或删除元素后面的索引下标都需要更改。所以效率会很慢。
链表结构:
元素:O-O-O-O-O-O-O
索引:各自元素会记住前后是什么元素作为索引。
|