Java集合框架(三)Queue 您所在的位置:网站首页 集合框架的顶层接口 Java集合框架(三)Queue

Java集合框架(三)Queue

2024-06-30 21:29| 来源: 网络整理| 查看: 265

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的都可以用,我们用代码看下具体用法:

package com.ljw.ColleactionAndMap; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; import java.util.Queue; /** * Created by liujiawei on 2018/6/29. */ public class TestLinkedList { public static void main(String[] args) { List a = new LinkedList(); Queue q = new LinkedList(); LinkedList linkedList = new LinkedList(); linkedList.add(0,"jack"); linkedList.add(1,"tom"); System.out.println(linkedList); //双向链表 直接操作头尾元素 linkedList.addFirst("jerry"); System.out.println(linkedList); linkedList.addLast("pony"); System.out.println(linkedList); System.out.println("栈顶元素" + linkedList.peek()); System.out.println("栈顶元素" + linkedList.peekFirst()); System.out.println("栈底元素" + linkedList.peekLast()); linkedList.offer("tony"); System.out.println(linkedList.pop()); ListIterator listIterator = linkedList.listIterator(); while(listIterator.hasNext()){ System.out.println(listIterator.next()); } } }

运行结果:

    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。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有