小猪学习

小小白慢慢学习中ing 第二十四天
努力努力
本日内容(泛型Generics、迭代器Iterator)
1、ArrayList集合
ArrayList集合,底层实现:采用数组的结构实现的。(最大的特点:内存连续)。
也会叫做变长数组。
优点:遍历集合中的元素,效率很高
缺点:更改集合中的元素,效率相对低。

2、LinkedList集合
LinkedList集合:底层实现:采用双向链表的结构实现。
优点:更改集合中的元素,效率很高。
缺点:遍历集合中的元素,效率相对低。
queue:队伍,队列,行列
deque:double -ended queue,双端队列
LinkedList实现类,区别于ArrayList,除了实现List接口,还实现了Deque接口。

LinkedList实现类:
实现的接口:
List接口----------------------------------->Collection
Deque(双端队列)接口----->Queue(队列)接口------>Collection
模拟栈的结构:后进先出(LIFO),栈顶元素,
push(),压栈,入栈,pop(),弹栈,出栈
模拟队列的结构:先进先出(FIFO),队头元素
offer(),poll()

栈的结构特点:

队列的结构特点:

【扩展知识1】
数据结构:存储的数据的组织特点。
线性表,链表,树。。。。
栈:Stack,这种数据结构的特点?
last In First Out,简称LIFO,后进先出。
队列:queue,
First in First out,简称FIFO,先进先出。
【扩展知识2】
Vector:向量
对比ArrayList,LinkedList,Vector实现类
A:ArrayList,底层采用数组结构的实现的。(内存中连续空间)。jdk1.2
只实现了List接口,功能都是List接口中规定的。
优缺点:
优点:遍历访问元素,效率很高
缺点:插入或删除元素,效率相对低。
B:LinkedList,底层采用双向链表结构实现的。(元素在内存中不挨着,元素之间的指向)。jdk1.2
实现了List接口的同时,还实现了Deque接口,所以有这两个接口中的功能。
优缺点:
优点:插入或删除元素,效率很高。
缺点:遍历访问元素,效率相对低。
注意点:
如果一个集合,频繁的添加或删除元素,建议选择LinkedList。
如果一个集合,绝大多数的操作就是遍历查询,建议选择ArrayList。
如果要模拟栈,队列等结构,建议选择LinkedList。
C:Vector,是ArrayList的前身。也是数组的结构。古老的类。从jdk1.0的版本就有了。
线程安全,效率低,后来被ArrayList替代了。
ArrayList和LinkedList都是线程不安全的,效率高。Collections工具类,可以获取线程安全的集合。