本文参考黑马教程:https://www.bilibili.com/video/BV18J411W7cE?p=220
- 集合分为两种单列和双列
- 集合都在java.util下是需要导包的(java.long不需要-string
- collection接口提供了iterator方法返回一个迭代器
- 迭代器主要使用两个方法:next与hasnext,要区别两者
集合体系结构

常见collection方法


迭代器


List
两点:可重复,有序

特有方法

修改异常
这一部分可以参考https://blog.csdn.net/qq_43398404/article/details/122790620
介绍了failfast与failsafe
通常arraylist的迭代器是failfast机制
解决方案是不使用迭代器,直接用for循环遍历

列表迭代器



列表迭代器为什么允许迭代期间修改?

collection为何能使用增强for循环?
继承了iterable接口
也就是说所有实现了collection接口的子类都可以使用增强for
该接口有如下方法

List下子类的特点
同样参考https://blog.csdn.net/qq_43398404/article/details/122790620

Set集合



hash值相关
hash值可以通过重写方法hashcode完成不同对象的hash值都相同


hashset 保证add不重复的原理
hashset底层使用的是hash表


加入hash表的方法演示

LinkedHashSet
两点:有序但是不重复


TreeSet
特点:具有排序作用


没有实现comparable接口而发生异常














