Please enable JavaScript.
Coggle requires JavaScript to display documents.
Collection - Coggle Diagram
Collection
特点(记忆)
1.collection是collection集合体系的顶级接口
2.collection有些子实现有序,有些子实现无序
3.collection有些子实现允许存储重复元素,有些子text实现不允许存储重复元素
4.colextion有些子实现允许存储null,有些子实现不允许存储null
集合的特点
1.只能存储引用数据类型
2.可以自动调整大小
面试时回答顺序:
1.是谁的子类,表达了什么数据结构
2.底层实现:数组,链表,数组加链表
3.重复,有序,null问题
4.线程是否安全
数组和集合的不同
1.数组可以存储基本数据类型,集合不可以
2数组大小固定
3.数组相对于集合效率更高
4.数组没有API,集合有丰富的API
List
特点:
1.list是Collection的子接口
2.list描述的数据结构是线性表
3.list有序
4.list允许存储重复元素
5.list允许存储null
API
sublist()
是一个视图方法
注意: java中的集合类中有很多视图方法, 要注意视图返回的对象实际上并没有真正持有那个数据, 它持有的是一个标记和引用, 它通过这个标记和引用指向源数据
注意: 视图方法也伴随着并发修改异常, 原因和iterator迭代一样, 都是在已经开始了使用, 但是还未使用完成之前, 调用了源集合类的修改结构方法, 让源集合类发生了改变, 会导致迭代或者视图有问题(不再准确), 所以会抛出并发修改异常, 所以我们在使用iterator的时候和使用subList这种视图方法的时候, 不要在使用过程中调用了源集合类的修改结构方法.
Collection的API
iterator类型
注意事项:1.remove方法,不能再迭代之前进行,也不能做连续的删除;删除的是源数据;对iterator来说更重要的是遍历而非删除。
2.iterator的遍历和删除操作的都是源数据
3.由于有记录修改次数的变量存在,当我们在遍历的时候调用修改方法修改了源集合类会导致并发修改异常。