Collection下的三大接口
Set:集合,无序,不允许相同的元素
Queue:队列,先进先出
List :有序的
需要注意的是LinkedList既实现了List接口也实现了Queue接口。
Queue:
boolean offer(E e): 将指定的元素插入此队列
E poll(): 获取头部元素并且删除元素,队列为空返回null;
E peek(): 获取队列头部元素却不删除元素,队列为空返回null
不推荐使用
boolean add(E e) 和E remove(): 获取头部元素并且删除元素,因为在无法删除或增加的情况下会抛异常
Deque子接口与ArrayDeque类
Deque代表一个双端队列,可以当作一个双端队列使用,也可以当作“栈”来使用,因为它包含出栈pop()与入栈push()方法。
ArrayDeque类为Deque的实现类,数组方式实现。方法有:
- addFirst(Object o):元素增加至队列开头
- addLast(Object o):元素增加至队列末尾
- poolFirst():获取并删除队列第一个元素,队列为空返回null
- poolLast():获取并删除队列最后一个元素,队列为空返回null
- pop():“栈”方法,出栈,相当于removeFirst()
- push(Object o):“栈”方法,入栈,相当于addFirst()
- removeFirst():获取并删除队列第一个元素
- removeLast():获取并删除队列最后一个元素
注意:ArrayList和Vector
- 默认初始容量都是10
- 底层实现都是数组
- ArrayList不是线程安全的,速度快,Vector是线程安全的,速度慢
- 扩容:ArrayList是原来的1.5倍,Vector是原来的两倍
Collection是一个集合接口,Collections是集合类的工具类提供sort(),reserve()等一系列方法。
ArrayList<Integer> list = new ArrayList<>();
list.add(2);
list.add(3);
Collections.sort(list);