容器(集合)
装载多个对象,类型可变,装载不同类型对象
JAVA本身就提供了很多容器给我们
必须要掌握的三个
list set map
集合--容器--LIST
collection是最上层的接口<存储方式为链表>
conllection:添加 删除 遍历 判断为空 得到容器中元素的个数
list:
map:键值对
map是一个映射<两个组成一対,形成一个元素>,放进元素是put而不是add。
collection是接口,collections是工具类。
集合--容器--LIST
数据结构的不同会形成不同的容器。
集合--容器--LIST
ArrayList底层是用数组实现的,有三种构造方法,下图中框出来的是第二种构造方法
集合--容器--LIST
内存模型
集合--容器--LIST
LinkList:适合插入和删除
与arryList<适合访问>的差别:使用链表的数组结构。arryList使用的是数组,是基于动态数组的数据结构《数据使用的是线性表,控件是连续开辟的》
由于存储结构的不同,LinkList可以使用addFirst,addLast,.getFirst,getLast.但线性表不行

Vector:
类似于arryLiList,是基于动态数组的数据结构
区别:
实现原理相同,功能相同。很多情况下可以互用。但是在线程安全性有差异。Vector线程安全,速度慢。容量增大是增大一倍。
arryList线程非安全,速度快。容量增大是增大百分之50.
线程安全:很多线程同时动作,是否发生冲突

泛型:集合中泛型的使用
集合中使用泛型,就是指定该集合只能存放某种固定的元素
<泛型>
集合--容器--LIST
避免了类型转换异常

集合的遍历方式:
1.数组:通过下标遍历集合
2.for Each循环,for循环加强
集合--容器--LIST
第一个遍历 不打印stu3—原因:数组自动缩容扩容
循环遍历过程中,删除动作可能会产生异常
3.迭代器实现遍历 避免了删除元素后遍历错误的现象
集合--容器--LIST
集合--容器--LIST
注意:it.next指的是it指针往下移,不是说it的next
只能用迭代器的remove而不是List的remove

迭代器模式:提供一种方法顺序访问一个聚合对象的各个元素,而又不暴露该对象的内部结构
集合可以有多重结构,得到元素判断元素的细节不一样,迭代器模式将访问元素的过程和访问元素的结构分离
实现collection接口的所有集合都有一个指向它自己的迭代器
实现collection的所有接口都可以使用迭代器实现遍历

栈集合
集合--容器--LIST

相关文章: