文章目录
集合知识点基础
集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变。
集合类体系结构
Collection集合
一、collection集合的概述
二、Collection集合的常用方法
三、Collection集合的遍历
Iterator:迭代器,集合的专用遍历方式。
四、集合的使用步骤
五、案例
需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合。
略
List集合
一、List集合概述和特点
二、List集合特有方法
案例
三、List集合的并发性异常
原因:迭代器遍历的过程中,通过集合对象修改了集合中的元素,造成了迭代器获取元素中判断预期修改值和实际修改值不一致。
发生这种错误的修改方案( 用for循环遍历,然后用集合对象做对应的操作即可)。
四、ListIterator(列表迭代器)
一般正向遍历的时候用Iterator就可以了,不怎么用ListIterator
这里需要注意的是ListIterator使用add方法不会引发并发性异常。
五、增强For循环
List常用的两个子类
这里其实是两个数据结构:ArrayList(这个其实就是数组实现的)、LinkedList(这个其实是链表形式实现的)
Set集合
一、Set集合的概述
二、哈希值
正常调用自带的哈希值的方法的话,相同的对象得到的哈希值是一样的,不同的对象的哈希值是不同的。但是通过方法重写。可以实现不同的对象的哈希值是相同的。
三、HashSet集合概述和特点
四、哈希表
先比较哈希值,当哈希值相同的时候就比较内容,当内容也是不一样的时候,就可以存进去了。
五、LinkedHashSet集合概述和特点
六、TreeSet集合
1)、自然排序
下面这个图是重点,看不懂就看下面的程序。
下面是一个构建TreesSet结构的例子,这里需要重写CompareTo接口
这里的1其实就是放后面的意思,-1就是放前面,所以看下面。
如果年龄相同就看下面的姓氏的字母:
2)、比较器排序Comparator的使用
案例1
案例2
Hashset不会排序,但是TreeSet会排序。
泛型
使用泛型可以提前定义好数据类型,省的弄错。
另外再add对象的时候不用进行强制类型转换了。
泛型
泛型类
泛型方法
这个泛型方法相对于上面的泛型类的好处是:在实例化对象的时候可以不用先指定数据类型,最后调用方法的时候指定即可。
泛型接口
接口的实现类如下:
类型通配符
可变参数
可变参数的注意事项
这里的变量其实是一个数组
如果一个方法有多个参数,包括可变参数,可变参数要放在最后。
可变参数的使用
Map集合
Map集概述和使用
Map集合的基本功能
Map集合的获取功能
Map集合的遍历
案例
一、
二、集合嵌套的案例
三、Hashmap嵌套ArrayList
四、案例