首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

相关PriorityQueue(很奇怪)

2012-08-22 
有关PriorityQueue(很奇怪)Java codeimport java.util.*public class Test{public static void main(Stri

有关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

热点排行