1.为什么要使用集合
数组特点:类型固定,长度固定
类的特点:不同类型的成员属性,共同描述一个实体类
集合特点:类型不固定,长度也不固定,随意存放任何数据
2.认识集合框架的继承结构
3.ArrayList
集合没有固定长度:
常用方法
4.LinkedList
存储原理是一个链表,在元素的前后分别有一个前置结点和后置结点,用于连接集合中的上一个元素和下一个元素,依次“手拉手”,构成一条链式数据的集合。
特有的方法
5.两个List集合的对比
1.List 接口存储一组不唯一(可以重复),有序(插入顺序)的对象
2.ArrayList实现了长度可变的Object类型数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高
3.LinkedList采用链表存储方式,插入、删除元素时效率比较高
4.通过查看添加方法的源码,比较二者结构的区别。链式存储和数组存储
效率不同的原因:
Linkedlist在执行删除和添加操作时,只会对相邻的两个元素有影响,
Arraylist由于它的本质是一个数组,在执行删除和添加操作时,后面所有的元素的地址值都将出现移位。
6.Set集合
1.Se接口特点:
存储一组唯一(不允许出现重复的元素),无序(没有index下标)的对象,HashSet是Set接口常用的实现类。
2.如何操作Set集合的数据呢?
(1)新增
set.add() #把被添加数据添加到集合的开头
set.update() #把元素迭代无序添加到集合中
(2)删除
pop()
remove()
clear()
del set
这里注意pop()不能指定变量否则会报错
(3)修改
由于set集合中的元素没有索引,因此没法定位set中的元素,因此set集合中的修改只能先删除 再添加
(4)查询
set是一个可迭代对象,可以使用for循环查询