一 |
1. 集合框架。集合是用来存储数据的,比数组操作方便,不需要考虑容量问题,可以存储不同类型的数据,但是不建议,因此出现了泛型机制来约束。编译器就可以检查元素类型是否匹配,避免了程序运行时出现错误。
2. 父接口Collection
常用的子接口:
List:有序,可重复(元素之间通过equals比较)
Set:无序,不可重复(元素之间通过equals比较)
3. List子接口的实现类
ArrayList:内部是一个动态数组,查找速度快,增删慢
LinkedList:内部是一个链表,查找速度慢,增删块
Comparable与Comparator的作用与区别 |
共同作用:都是用来排序的。
Comparable是元素类型必须实现的接口,必须重写
compareTo(Object obj)方法,调用sort(p1)方法,
return this-obj --升序
return obj-this --降序
Comparator是在原有的排序规则上,临时改变排序规则时,使用的比较器接口,必须实现compare(Object obj1,Object obj2),临时改变规则时,调用集合的sort(p1,p2)方法。
return obj1-obj2 --升序
return obj2-obj1 --降序
队列Queue和双端队列Deque |
是一个接口,数据结构是只能一端进,一端出(FIFO)。
LinkedList就是实现了此接口(为什么不用ArrayList实现此接口,因为队列这种数据结构经常发生增删改查操作,LinkedList在增删上效率特别快)。
常用方法:
offer(E e):表示进入队列
poll():表示从队首出队列,返回的就是出来的元素
peek():查看端首元素,返回的就是队首元素
---------------------------------------------------------------------
双端队列Deque接口,是队列Queue的子接口,每一端都可以进和出。
如果把一端封闭,只用一端来进行增删元素,就是栈的数据结构(FILO),使用push(E e)入栈。