• Tags
  •         
  • www.breakyizhan.com
  •    

    Queue接口在java.util包中可用,并扩展了Collection接口。队列集合用于保存要处理的元素,并提供各种操作,如插入,删除等。它是一个有序的对象列表,其使用仅限于在列表末尾插入元素并从头开始删除元素列表,即它遵循FIFO或先入先出原则。作为一个接口,队列需要一个具体的声明类,最常见的类是Java 中的PriorityQueue和LinkedList。需要注意的是,这两个实现都不是线程安全的。如果需要线程安全实现,PriorityBlockingQueue是一个替代实现。Queue的几个重要特征是:

    • Queue用于在队列末尾插入元素并从队列的开头删除。它遵循FIFO概念。
    • Java Queue支持Collection接口的所有方法,包括插入,删除等。
    • LinkedList,ArrayBlockingQueue和PriorityQueue是最常用的实现。
    • 如果对BlockingQueues执行任何null操作,则抛出NullPointerException。
    • BlockingQueues具有线程安全的实现。
    • java.util包中可用的队列是Unbounded Queues
    • java.util.concurrent包中可用的队列是有界队列。
    • 除Deques之外的所有队列分别支持在队列的尾部和头部插入和移除。Deques支撑元件在两端插入和移除。

    队列中的方法:

    1. add() -此方法用于在队列尾部添加元素。更具体地说,如果使用了链接列表的最后一个,或者在优先级队列实现的情况下根据优先级。
    2. peek() -此方法用于查看队列的头部而不删除它。如果队列为空,则返回Null。
    3. element() -此方法类似于peek()。当队列为空时,它会抛出NoSuchElementException
    4. remove() -此方法删除并返回队列的头部。当队列不严重时,它会抛出NoSuchElementException
    5. poll() -此方法删除并返回队列的头部。如果队列为空,则返回null。

    由于它是Collections类的子类型,它继承了它的所有方法,即size(),isEmpty(),contains()等。

    下面是一个简单的Java程序来演示这些方法

    // Java orogram to demonstrate working of Queue
    // interface in Java
    import java.util.LinkedList;
    import java.util.Queue;
    
    public class QueueExample
    {
      public static void main(String[] args)
      {
        Queue<Integer> q = new LinkedList<>();
    
        // Adds elements {0, 1, 2, 3, 4} to queue
        for (int i=0; i<5; i++)
         q.add(i);
    
        // Display contents of the queue.
        System.out.println("Elements of queue-"+q);
    
        // To remove the head of queue.
        int removedele = q.remove();
        System.out.println("removed element-" + removedele);
    
        System.out.println(q);
    
        // To view the head of queue
        int head = q.peek();
        System.out.println("head of queue-" + head);
    
        // Rest all methods of collection interface,
        // Like size and contains can be used with this
        // implementation.
        int size = q.size();
        System.out.println("Size of queue-" + size);
      }
    }
    
    输出:

    Elements of queue-[0, 1, 2, 3, 4]
    removed element-0
    [1, 2, 3, 4]
    head of queue-1
    Size of queue-4
     
    转载请保留页面地址:https://www.breakyizhan.com/java/5348.html