1,介绍
-
List是Java中比较常用的集合类,关于List接口有很多实现类
2,数据结构之数组和链表
【1】数组
-
查询快修改也快 ArragList
-
增删慢
-
底层是数组。有索引直接找值。 增加的时候所有位置都想开始移动。删除要把后面的值抵挡前面的值
【2】链表
-
查询慢,修改也慢 LinkedList
-
增删快
-
后面的一个链子。记住了前后的地址值。查找是分区前后查找
3,List集合下三个子类
【1】List的三个子类的特点
-
ArrayList:
-
底层数据结构是数组,查询快,增删慢。
-
线程不安全,效率高。
-
-
LinkedList:
-
底层数据结构是链表,查询慢,增删快。
-
线程不安全,效率高。
-
-
Vector:
-
底层数据结构是数组,查询快,增删慢。
-
线程安全,效率低。
-
【2】相互之间的差异
-
Vector和ArrayList的区别
-
Vector是线程安全的,效率低
-
ArrayList是线程不安全的,效率高
-
Vector相对ArrayList查询慢(线程安全的)
-
Vector相对LinkedList增删慢(数组结构)
-
共同点:都是数组实现的
-
-
ArrayList和LinkedList的区别
-
ArrayList底层是数组结果,查询和修改快
-
LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢
-
共同点:都是线程不安全的
-
【3】List有三个儿子,我们到底使用谁呢?
-
查询多用ArrayList
-
增删多用LinkedList
-
如果都多ArrayList