黑马程序员技术交流社区

标题: 【上海校区】Java集合框架(三)Queue [打印本页]

作者: 不二晨    时间: 2018-7-3 09:40
标题: 【上海校区】Java集合框架(三)Queue
Queue

    Java中Queue的类图:


1.Queue介绍

        Queue,java中模拟队列的一种数据结构,先进先出(FIFO),不支持随机访问数据,通过offer()方法增加数据到队列尾部,poll()获取队列头部元素,可以将Queue看成一个通道,最先走进的通道的也是最先走出通道的,最后走进去的,在通道里面呆的时间最久。

        

2.Queue主要实现

    Queue中的主要实现有PriorityQueue和LinkedList. PriorityQueue目前还没有接触过,等到用到的时候再来补充,我们这里主要介绍下LinkedList,这是一个功能强大的集合。

    LinkedList同时实现list和Deque接口,所以它也同时具有了list和queue的特点,它既有索引,是一个list,同时也是一个双向队列,所有它的操作方式也比较多样,list和queue的都可以用,我们用代码看下具体用法:

运行结果:


    queue是不支持随机访问数据的,但是linkedlist因为可以当成list使用,所以他支持随机访问,也可以使用队列中操作头尾的方法,如peekFirst(),offer(),poll()等,同时还可以使用栈的一些方法,如pop()等,是一个功能强大的集合类。


    Linkedlist优缺点:优点:
(1)内部使用链表实现,执行插入、删除操作很快;
(2)功能强大,list,queue和stack的方法都可以使用;
缺点:

(1)随机访问数据方面不如内部是用数组实现的arraylist和vector。


3.ArrayList,Vector,LinkedList比较

(1)如果需要遍历集合,ArrayList和Vector通过随机访问的方式比较好,LinkedList通过迭代器的方式比较好;(2)需要经常执行插入、删除操作时,使用LinkedList比较好,因为他用链表实现,ArrayList和Vector内部会扩容动态分配大小,耗费时间;

(3)需要线程安全,考虑使用Vector。

【转载】原文地址:https://blog.csdn.net/qq_23585245/article/details/80864905



作者: 吴琼老师    时间: 2018-7-5 16:54





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2