如何使打印队列在java中正常工作?这是我自己的队列实现。
使用iterator()可以很好地工作,只是它以随机顺序打印数字。
package data_structures_java ;
import java.util.Iterator;
import java.util.PriorityQueue ;
import java.util.* ;
public class Queue_implementation {
PriorityQueue<Integer> actual_queue ;
public Queue_implementation(){
actual_queue = new PriorityQueue<Integer>() ;
}
public void add(int num){
actual_queue.add(num) ;
}
public int remove(){
return actual_queue.remove() ;
}
public int peek(){
if( actual_queue.isEmpty()) return -1 ;
else return actual_queue.peek() ;
}
public int element(){
return actual_queue.element() ;
}
public void print_queue(){
PriorityQueue<Integer>copy = new PriorityQueue<Integer>();
copy.addAll(actual_queue) ;
Iterator<Integer> through = actual_queue.iterator() ;
while(through.hasNext() ) {
System.out.print(through.next() + " ") ;
}
System.out.println() ;
actual_queue.addAll(copy) ;
}
public static void main(String[] args) {
Queue_implementation x = new Queue_implementation() ;
x.add(10) ;
x.add(9) ;
x.add(8) ;
x.add(7) ;
x.add(6) ;
x.print_queue() ;
}
}
我尝试使用toarray(),但它返回object[],我不知道如何遍历它:
Object[] queue_object_array = x.toArray() ;
Arrays.sort(queue_object_array) ;
3条答案
按热度按时间jum4pzuy1#
使用iterator()可以很好地工作,只是它以随机顺序打印数字。
这正是它在javadoc中所说的。只有这样才能拿到订单
PriorityQueue
就是使用poll()
或者remove()
方法。lo8azlld2#
单行解决方案:当您需要快速调试时,它很有用。
编辑:另一个简明代码:
k7fdbhmy3#
可以将优先级队列对象转换为数组对象。然后可以打印此数组对象。