中软Java学习第八天笔记之队列和栈
2016-08-08 20:42
211 查看
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,用于提高性能
相关文章推荐
- 中软Java学习第八天笔记之Set
- JAVA学习笔记(十)基于LinkedList实现栈和队列
- 算法(第四版)学习笔记之java实现基于堆的优先队列
- 中软Java学习第六天笔记
- JAVA并发编程学习笔记之MCS队列锁
- 中软Java学习第五天笔记
- 中软Java学习8月15日笔记之socket
- 【屌丝学习笔记】第八天 JAVA基础
- 中软Java学习笔记8月11日笔记之File
- 中软Java学习第七天笔记
- 0038 Java学习笔记-多线程-传统线程间通信、Condition、阻塞队列、《疯狂Java讲义 第三版》进程间通信示例代码存在的一个问题
- 黑马程序员--java学习笔记第八天
- 中软Java学习笔记第三天
- 【java学习笔记】栈,队列,Comparator比较器
- 中软Java学习笔记之LinkList
- 学习java多线程的笔记3-使用BlockingQueue阻塞队列来模拟两个线程之间的通信
- 算法(第四版)学习笔记之java实现栈和队列(链表实现)
- 中软Java学习笔记第一天
- 中软Java学习笔记第二天
- 中软Java学习8月10日笔记