当前位置: 代码迷 >> J2SE >> 相关PriorityQueue(很奇怪)
  详细解决方案

相关PriorityQueue(很奇怪)

热度:4257   发布时间:2013-02-25 00:00:00.0
有关PriorityQueue(很奇怪)
Java code
import java.util.*;public class Test{    public static void main(String[] args)    {        String fact = "EDUCATION SHOULD ESCHEW OBFUSCATION";        List<String> strings = Arrays.asList(fact.split(""));        Iterator<String> iter = strings.iterator();        while(iter.hasNext())        {            System.out.print(iter.next()+" ");        }        System.out.println();        PriorityQueue<String> stringPQ = new PriorityQueue<String>(strings);        while(stringPQ.peek()!=null)        {            System.out.print(stringPQ.remove()+" ");                }    }}


为什么打印结果是:
  E D U C A T I O N S H O U L D E S C H E W O B F U S C A T I O N 
  A A B C C C D D E E E F H H I I L N N O O O O S S S T T U U U W  

  奇怪的是第二行打印的结果
  PriorityQueue里面不是装的String么,怎么对它进行peek操作,出来的全部都是一个个的char?

------解决方案--------------------------------------------------------
Java code
fact.split(" ")
------解决方案--------------------------------------------------------
List<String> strings = Arrays.asList(fact.split(""));
 PriorityQueue<String> stringPQ = new PriorityQueue<String>(strings);



你把List容器里的所有元素添加到PriorityQueue容器里了
看看你的PriorityQueue构造方法里添加了什么?-----"strings"(建议你查看下API文档)
并且PriorityQueue容器对元素进行了自然顺序的排序...

因此打印结果为:
A A B C C C D D E E E F H H I I L N N O O O O S S S T T U U U