當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Java.util.PriorityQueue用法及代碼示例


它是一個基於優先級堆的優先級隊列。

  • 此類中的元素按自然順序排列,或者取決於我們在構造時使用的構造函數。
  • 它不允許空指針。
  • 如果它依賴於自然排序,則它不允許插入不可比較的對象。

構造函數:

  • PriorityQueue():創建一個具有默認初始容量 (11) 的 PriorityQueue,該容量根據元素的自然順序對其元素進行排序。
  • PriorityQueue(集合擴展 E> c):創建一個包含指定集合中的元素的PriorityQueue。
  • PriorityQueue(int 初始容量):創建一個具有指定初始容量的PriorityQueue,並根據元素的自然順序對其元素進行排序。
  • PriorityQueue(int initialCapacity, Comparator super E> 比較器):創建具有指定初始容量的 PriorityQueue,並根據指定的比較器對其元素進行排序。
  • PriorityQueue(PriorityQueue 擴展 E> c):創建一個PriorityQueue,其中包含指定優先級隊列中的元素。
  • PriorityQueue(SortedSet 擴展 E> c):創建一個包含指定排序集中元素的PriorityQueue。

聲明:

public class PriorityQueue
   extends AbstractQueue
   implements Serializable

方法:

  1. 添加(元素):java.util.PriorityQueue.add()將元素插入優先級隊列。
    Syntax :
    public boolean add(E e)
    Parameters  :
    element : the element we need to add.
    Return  :
    call return true.
    Exception : 
    -&gt ClassCastException 
    -&gt NullPointerException
    
  2. comparator():java.util.PriorityQueue.comparator()對隊列中的元素進行排序。
    Syntax :
    public Comparator comparator()
    Parameters  :
    -------
    Return  :
    orders the queue or return null, if it is naturally ordered 
    Exception : 
    ----------
    
  3. 包含(對象 obj):java.util.PriorityQueue.contains(obj)如果優先級隊列包含元素“obj”,則返回 true。
    Syntax :
    public boolean contains(Object obj)
    Parameters  :
    obj : object to be checked
    Return  :
    true - if the object is present else, return false
    Exception : 
    
    
  4. iterator():java.util.PriorityQueue.iterator()迭代隊列元素。
    Syntax :
    public Iterator iterator()
    Parameters  :
    -------
    Return  :
    calls iterator over the elements in the queue.
    Exception : 
    --------
    
  5. 引號(元素):java.util.PriorityQueue.offer()需要將特定元素插入給定優先級隊列。
    Syntax :
    public boolean offer(E element)
    Parameters  :
    element : specific element to  be entered.
    Return  :
    call return true.
    Exception : 
    -&gt ClassCastException 
    -&gt NullPointerException
    
  6. peek():java.util.PriorityQueue.peek()標識隊列的頭元素。
    Syntax :
    public E peek()    
    Parameters  :
    -------
    Return  :
    calls if head exists, else null
    Exception : 
    ------
    
  7. poll():java.util.PriorityQueue.poll()識別頭部,然後將其移除。
    Syntax :
    public E poll()    
    Parameters  :
    ---
    Return  :
    calls if head exists, else null
    Exception : 
    ------
    
  8. 刪除(對象 obj):java.util.PriorityQueue.remove()從隊列中刪除特定對象。
    Syntax :
    public boolean remove(Object obj)
    Parameters  :
    obj : object to be removed
    Return  :
    true - if obj is removed
    Exception : 
    ------
    
  9. size():java.util.PriorityQueue.size()返回優先級隊列中元素的大小。
    Syntax :
    public int size()
    Parameters  :
    ----
    Return  :
    no. of elements
    Exception : 
    ---------
    
  10. toArray():java.util.PriorityQueue.toArray()返回一個包含 PriorityQueue 元素的數組。
    Syntax :
    public Object[] toArray()
    Parameters  :
    ------
    Return  :
    returns an array containing all the elements of PriorityQueue.
    Exception : 
    --------
    
  11. toArray(T[] 數組):java.util.PriorityQueue.toArray(T[] a)返回具有優先級隊列元素的數組。
    Syntax :
    public  T[] toArray(T[] array)
    Parameters  :
    array  : the array to which are to be sorted. 
    Return  :
    call an array containing all the elements of the array. 
    Exception : 
    -> ArrayStoreException
    -> NullPointerException
    
  12. clear():java.util.PriorityQueue.clear()清除 PriorityQueue 的所有元素。
    Syntax :
    public void clear()        
    Parameters  :
    ---
    Return  :
    ------
    Exception : 
    ------
    
  13. 
    // Java Program illustrating the methods 
    // of java.utl.priorityQueue class 
      
    // add(), comparator(), conatins(), iterator(), offer() 
    // peek(), poll(), toArray(), size(), toArray(t[] g1), 
    // remove(), clear() 
      
    import java.util.*; 
    public class NewClass 
    { 
        public static void main(String[] args) 
        { 
            // Creating a Priority Queue : 
            PriorityQueue <Integer> geek = new PriorityQueue <Integer> (); 
      
            for(int i=2; i<=20; i=i+2) 
            { 
                // Use of add() : 
                geek.add(new Integer (i)); 
            } 
      
            System.out.println("geek PriorityQueue : " + geek); 
      
            // Use of comparator()  
            // No ordering is required here as it is naturally ordered. 
            Comparator geek_comp = geek.comparator(); 
            System.out.println("geek PriorityQueue : " + geek_comp); 
      
            // Use of contains()  
            boolean check = geek.contains(6); 
            System.out.println("Use of contains() : " + check); 
      
            // Use of iterator()  
            Iterator g_iterator = geek.iterator(); 
      
            System.out.print("Iterator values : "); 
            while(g_iterator.hasNext()) 
            { 
                System.out.print(g_iterator.next() + " "); 
            } 
            System.out.println(""); 
      
            // Use of offer()  
            geek.offer(3050); 
            System.out.println("geek PriorityQueue : " + geek); 
      
            // Use of peek()  
            System.out.println("Head of PriorityQueue via peek : " + geek.peek()); 
      
            //Use of poll()  
            int h = geek.poll(); 
            System.out.println("\nHead of PriorityQueue via poll : " + h); 
            System.out.println("geek PriorityQueue bcz of poll() : " + geek); 
      
            // Use of remove() 
            boolean r = geek.remove(8); 
            System.out.println("\nCan remove : " + r); 
            System.out.println("geek PriorityQueue bcz of remove() : " + geek); 
      
            // use of size()  
            System.out.println("\nSize of PriorityQueue : " + geek.size()); 
      
            // Use of toArray()  
            Object[] g = geek.toArray(); 
            System.out.print ( "Array from PriorityQueue : "); 
      
            for ( int i = 0; i<g.length; i++ ) 
            { 
                System.out.print (g[i].toString() + " ") ; 
            } 
      
            System.out.println("\n"); 
      
            // Use of toArray(t[] g1) : 
            Integer[] g2 = new Integer[5]; 
            Integer[] g1 = geek.toArray(g2); 
            System.out.print ( "Array from PriorityQueue of size 5 : "); 
      
            for ( int i = 0; i<g1.length; i++ ) 
            { 
                System.out.print (g1[i].toString() + " ") ; 
            } 
      
            System.out.println("\n"); 
      
            // Use of clear()  
            geek.clear(); 
            System.out.println("PriorityQueue after clear() : " + geek); 
      
        } 
    } 

    輸出:

    geek PriorityQueue : [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
    geek PriorityQueue : null
    Use of contains() : true
    Iterator values : 2 4 6 8 10 12 14 16 18 20 
    geek PriorityQueue : [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 3050]
    Head of PriorityQueue via peek : 2
    
    Head of PriorityQueue via poll : 2
    geek PriorityQueue bcz of poll() : [4, 8, 6, 16, 10, 12, 14, 3050, 18, 20]
    
    Can remove : true
    geek PriorityQueue bcz of remove() : [4, 10, 6, 16, 20, 12, 14, 3050, 18]
    
    Size of PriorityQueue : 9
    Array from PriorityQueue : 4 10 6 16 20 12 14 3050 18 
    
    Array from PriorityQueue of size 5 : 4 10 6 16 20 12 14 3050 18 
    
    PriorityQueue after clear() : []


相關用法


注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Java.util.PriorityQueue class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。