您的位置:首页 > 编程语言 > Java开发

中软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,用于提高性能

 

                      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: