看下面的例子,我们可以使用以下方法来迭代PriorityQueue:

  • For-each循环
  • Iterator
  • Stream(在Java8中引入)

文件:IterateQueueExample.java -

/**
 * 
 */
package com.yiibai.tutorial;

import java.util.Iterator;
import java.util.PriorityQueue;
import java.util.Queue;


/**
 * @author yiibai
 *
 */
public class IterateQueueExample {
    public static void main(String[] args) {
        Queue<Integer> queue=new PriorityQueue<>();
        queue.add(1);
        queue.add(2);
        queue.add(3);
        queue.add(4);
        queue.add(5);

        /*Method 1 - Using for each loop*/
        System.out.println("Using for each loop");
        for (Integer element : queue) {
            System.out.println(element);
        }

        /*Method 2 - Using Iterator*/
        System.out.println("
Using Iterator");
        Iterator<Integer> iterator=queue.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }

        /*Method 3 - Using Stream*/
        System.out.println("
Using Stream");
        queue.stream().forEach(e->System.out.println(e));
    }
}

执行上面示例代码,得到以下结果:

Using for each loop
1
2
3
4
5

Using Iterator
1
2
3
4
5

Using Stream
1
2
3
4
5