java.util 接口 Queue<E>
在处理元素前用于保存元素的 collection
队列通常(但并非一定)以 FIFO(先进先出)的方式排序各个元素
E peek() 获取但不移除此队列的头;如果此队列为空,则返回 null
E poll() 获取并移除此队列的头,如果此队列为空,则返回 null
boolean offer(E e) 将指定的元素插入此队列
通过peek()和poll()方法,可以找到Queue的列头,因此说Queue是有序的 (但是集合中的element没有索引值)
java.util 接口 Deque<E>
支持在两端插入和移除元素。名称 deque 是“double ended queue(双端队列)
java.util.concurrent 类 LinkedBlockingQueue<E>
Blocking是阻塞等待的意思
如程序调用,当方法没有返回值的时候,调用者无法向下运行代码
Non Blocking是非阻塞的意思
如程序调用,无需等待方法的返回值,调用者直接向下运行代码 (通常是多线程模式)
java.util 类 Stack<E> 它的父接口是java.util接口 List<E>
Stack 类表示后进先出(LIFO)的对象堆栈。
Stack的父类是Vector
E peek()
查看堆栈顶部的对象,但不从堆栈中移除它
E pop()
移除堆栈顶部的对象,并作为此函数的值返回该对象
E push(E item)
把项压入堆栈顶部
java.util 类 Vector<E> 与 ArrayList
Vector 类可以实现可增长的对象数组
Vector 是线程同步的
ArrayList是非线程同步的,如需线程同步,采用List list = Collections.synchronizedList(new ArrayList(...));
结论:优先使用ArrayList。
ArrayList的设计初衷就是替换Vector,用于提高性能
在处理元素前用于保存元素的 collection
队列通常(但并非一定)以 FIFO(先进先出)的方式排序各个元素
E peek() 获取但不移除此队列的头;如果此队列为空,则返回 null
E poll() 获取并移除此队列的头,如果此队列为空,则返回 null
boolean offer(E e) 将指定的元素插入此队列
通过peek()和poll()方法,可以找到Queue的列头,因此说Queue是有序的 (但是集合中的element没有索引值)
java.util 接口 Deque<E>
支持在两端插入和移除元素。名称 deque 是“double ended queue(双端队列)
java.util.concurrent 类 LinkedBlockingQueue<E>
Blocking是阻塞等待的意思
如程序调用,当方法没有返回值的时候,调用者无法向下运行代码
Non Blocking是非阻塞的意思
如程序调用,无需等待方法的返回值,调用者直接向下运行代码 (通常是多线程模式)
java.util 类 Stack<E> 它的父接口是java.util接口 List<E>
Stack 类表示后进先出(LIFO)的对象堆栈。
Stack的父类是Vector
E peek()
查看堆栈顶部的对象,但不从堆栈中移除它
E pop()
移除堆栈顶部的对象,并作为此函数的值返回该对象
E push(E item)
把项压入堆栈顶部
java.util 类 Vector<E> 与 ArrayList
Vector 类可以实现可增长的对象数组
Vector 是线程同步的
ArrayList是非线程同步的,如需线程同步,采用List list = Collections.synchronizedList(new ArrayList(...));
结论:优先使用ArrayList。
ArrayList的设计初衷就是替换Vector,用于提高性能