Java Java类
它是一个基于优先级堆的优先级队列。
- 这个类中的元素是自然顺序的,或者取决于我们在构建时使用的构造函数。
- 它不允许空指针。
- 如果它依赖于自然排序,则它不允许插入不可比较的对象。
构造函数:
- PriorityQueue():创建一个具有默认初始容量 (11) 的 PriorityQueue,它根据元素的自然顺序对其元素进行排序。
- PriorityQueue(Collection c):创建一个包含指定集合中元素的 PriorityQueue。
- PriorityQueue(int initialCapacity) :创建一个具有指定初始容量的 PriorityQueue,它根据元素的自然顺序对其元素进行排序。
- PriorityQueue(int initialCapacity, Comparator compare):创建一个具有指定初始容量的 PriorityQueue,它根据指定的比较器对其元素进行排序。
- PriorityQueue(PriorityQueue c) :创建一个包含指定优先级队列中的元素的 PriorityQueue。
- PriorityQueue(SortedSet c) :创建一个包含指定排序集中元素的 PriorityQueue。
宣言 :
public class PriorityQueue
extends AbstractQueue
implements Serializable
方法:
- add(element) : Java.util.PriorityQueue.add()将元素插入优先队列。
句法 :public boolean add(E e) Parameters : element : the element we need to add. Return : call return true. Exception : -> ClassCastException -> NullPointerException
- compare( ) : Java.util.PriorityQueue.comparator()对队列中的元素进行排序。
句法 :public Comparator comparator() Parameters : ------- Return : orders the queue or return null, if it is naturally ordered Exception : ----------
- contains(Object obj) :如果优先级队列包含元素“obj”, Java.util.PriorityQueue.contains(obj)返回 true。
句法 :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()迭代队列元素。
句法 :public Iterator iterator() Parameters : ------- Return : calls iterator over the elements in the queue. Exception : --------
- offer(element) : Java.util.PriorityQueue.offer()需要将特定元素插入给定的优先级队列。
句法 :public boolean offer(E element) Parameters : element : specific element to be entered. Return : call return true. Exception : -> ClassCastException -> NullPointerException
- peek() : Java.util.PriorityQueue.peek()标识队列的头元素。
句法 :public E peek() Parameters : ------- Return : calls if head exists, else null Exception : ------
- poll() : Java.util.PriorityQueue.poll()识别头部然后将其移除。
句法 :public E poll() Parameters : --- Return : calls if head exists, else null Exception : ------
- remove(Object obj) : Java.util.PriorityQueue.remove()从队列中删除特定对象。
句法 :public boolean remove(Object obj) Parameters : obj : object to be removed Return : true - if obj is removed Exception : ------
- size() : Java.util.PriorityQueue.size()返回优先队列中元素的大小。
句法 :public int size() Parameters : ---- Return : no. of elements Exception : ---------
- toArray() : Java.util.PriorityQueue.toArray()返回一个包含 PriorityQueue 元素的数组。
句法 :public Object[] toArray() Parameters : ------ Return : returns an array containing all the elements of PriorityQueue. Exception : --------
- toArray(T[] array) : Java.util.PriorityQueue.toArray(T[] a)返回包含优先队列元素的数组。
句法 :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 的所有元素。
句法 :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
geek = new PriorityQueue (); 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 输出 :
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() : []