它是一个基于优先级堆的优先级队列。
- 此类中的元素按自然顺序排列,或者取决于我们在构造时使用的构造函数。
- 它不允许空指针。
- 如果它依赖于自然排序,则它不允许插入不可比较的对象。
构造函数:
- 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。