import java.util.*;public class Test19{
public static void main(String[] args){
Queue<Integer> queue = new PriorityQueue<Integer>(10,new Comparator<Integer>(){
public int compare(Integer i, Integer j){
int result = i % 2 - j % 2;
if(result == 0){
result = i - j;
}
return result;
}
});
for(int i = 0; i < 10; i++){
queue.offer(i);
}
for(int i = 0; i < 10; i++){
System.out.println(queue.poll());
}
}
}//输出为 0 2 4 6 8 1 3 5 7 9
解释下过程!! 多谢
解决方案 »
- 用JAVA获取了RSS的资源,但如何把这些都保存到数据库?
- mysql中文编码问题
- java io/nio中“装饰器”模式应用,引发的流关闭问题(内存泄漏)
- SWT Table能不能做出这种效果
- native2ascii在英文操作系统上使用的问题
- 高分急问:这个文件(.txt)是什么数据库格式?能不能转化成关系型(来者有分,不够再加)
- 关于JAVA中的Dialog字体问题
- 一个关于JSP调用JSwing问题!
- 关于JTable的小问题,向大家请教!!!
- 请教大虾,为什么我linux7.2下的tomcat起不来,及如何才能与apache整合?
- 为什么执行不了
- 往myeclipse里面粘贴内容后,myeclipse就自动退出时怎么回事?
如果返回值为负数,就说明后者大,0为相等,正数为前者大
PriorityQueue在每次添加元素的时候,就会以这个comparator排序,如果不自定义,就默认自然顺序。
poll输出时则从小到大输出。
所以为什么你会输出这种结果,你自己按照自己定义的排序规则算一遍就知道了。