它是一個基於優先級堆的優先級隊列。
- 此類中的元素按自然順序排列,或者取決於我們在構造時使用的構造函數。
- 它不允許空指針。
- 如果它依賴於自然排序,則它不允許插入不可比較的對象。
構造函數:
- 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
方法:
- 添加(元素):java.util.PriorityQueue.add()將元素插入優先級隊列。
Syntax :public boolean add(E e) Parameters : element : the element we need to add. Return : call return true. Exception : -> ClassCastException -> NullPointerException
- comparator():java.util.PriorityQueue.comparator()對隊列中的元素進行排序。
Syntax :public Comparator comparator() Parameters : ------- Return : orders the queue or return null, if it is naturally ordered Exception : ----------
- 包含(對象 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 :
- iterator():java.util.PriorityQueue.iterator()迭代隊列元素。
Syntax :public Iterator iterator() Parameters : ------- Return : calls iterator over the elements in the queue. Exception : --------
- 引號(元素):java.util.PriorityQueue.offer()需要將特定元素插入給定優先級隊列。
Syntax :public boolean offer(E element) Parameters : element : specific element to be entered. Return : call return true. Exception : -> ClassCastException -> NullPointerException
- peek():java.util.PriorityQueue.peek()標識隊列的頭元素。
Syntax :public E peek() Parameters : ------- Return : calls if head exists, else null Exception : ------
- poll():java.util.PriorityQueue.poll()識別頭部,然後將其移除。
Syntax :public E poll() Parameters : --- Return : calls if head exists, else null Exception : ------
- 刪除(對象 obj):java.util.PriorityQueue.remove()從隊列中刪除特定對象。
Syntax :public boolean remove(Object obj) Parameters : obj : object to be removed Return : true - if obj is removed Exception : ------
- size():java.util.PriorityQueue.size()返回優先級隊列中元素的大小。
Syntax :public int size() Parameters : ---- Return : no. of elements Exception : ---------
- toArray():java.util.PriorityQueue.toArray()返回一個包含 PriorityQueue 元素的數組。
Syntax :public Object[] toArray() Parameters : ------ Return : returns an array containing all the elements of PriorityQueue. Exception : --------
- 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
- clear():java.util.PriorityQueue.clear()清除 PriorityQueue 的所有元素。
Syntax :public void clear() Parameters : --- Return : ------ Exception : ------
// 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 Java.util.Properties.getProperty()用法及代碼示例
- Java Java.util.Properties.list()用法及代碼示例
- Java Java.util.Properties.load()用法及代碼示例
- Java Java.util.Properties.loadFromXML()用法及代碼示例
- Java Java.util.Properties.propertyNames()用法及代碼示例
- Java Java.util.Properties.store()用法及代碼示例
- Java Java.util.Properties.storeToXML()用法及代碼示例
- Java Java.util.Properties.stringPropertyNames()用法及代碼示例
- Java Java.util.PropertyPermission.equals()用法及代碼示例
- Java Java.util.PropertyPermission.getActions()用法及代碼示例
- Java Java.util.PropertyPermission.hashCode()用法及代碼示例
- Java Java.util.PropertyPermission.implies()用法及代碼示例
- Java Java.util.PropertyResourceBundle.getKeys()用法及代碼示例
- Java Java.util.Properties.setProperty(String key,String value)用法及代碼示例
- Java Java.util.ArrayDeque.add()用法及代碼示例
- Java Java.util.ArrayDeque.addFirst()用法及代碼示例
- Java Java.util.ArrayDeque.addLast()用法及代碼示例
- Java Java.util.ArrayDeque.clear()用法及代碼示例
- Java Java.util.ArrayDeque.clone()用法及代碼示例
- Java Java.util.ArrayDeque.descendingIterator()用法及代碼示例
- Java Java.util.ArrayDeque.element()用法及代碼示例
- Java Java.util.ArrayDeque.getFirst()用法及代碼示例
- Java Java.util.ArrayDeque.getLast()用法及代碼示例
- Java Java.util.ArrayDeque.isEmpty()用法及代碼示例
- Java Java.util.ArrayDeque.iterator()用法及代碼示例
注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Java.util.PriorityQueue class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。