作者olys (查无昵称)
看板java
标题Re: [问题] PriorityQueue排出来的结果不对
时间Thu Mar 15 12:40:00 2012
因为推文我放上code
1F:推 eieio:应该是别的地方有错,补一下你怎麽放 new NNQE 和放进 queue 03/15 10:35
这是Comparator宣告
public static class NNQECompare implements Comparator<NNQE>{
public int compare(NNQE N1, NNQE N2){
if(N1.distance>N2.distance) return 1;
if(N1.distance<N2.distance) return -1;
return 0;
}
}
这是使用的地方
Priority.clear();
for(DataCache curB: Cache){
if(curB.ObjectCount != 0){
for(int j = 0; j < curB.ObjectCount ; j++){
t = new SpaceObject(curB.Items[j].x,curB.Items[j].y,curB.Items[j].id);
discompute=DisComputing(QItem, t);
if(discompute > RegionRadius)
continue;
else
Priority.add(new NNQE(t, discompute));
}
}
}
以下是NNQE的class
public class NNQE {
public double distance;
public SpaceObject element;
public NNQElement(SpaceObject O, double d)
{
element = O;
distance = d;
}
public double getdis(){
return distance;
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.117.177.98
※ 编辑: olys 来自: 140.117.177.98 (03/15 12:49)
2F:→ olys:感谢eieio!public int compare前加个@Override就正常了! 03/15 13:36
3F:推 LaPass:原来是漏掉@Override..... 这个ide都没显示吗? = = 03/15 13:45
4F:→ olys:我是用Eclipse, 不过java不会自动override吗? 03/15 13:47
5F:推 LaPass:印象中会.... 03/15 13:49
6F:推 eieio:真神奇,我说加 @Override 只是让 compiler 检查一下 03/15 14:15
7F:→ eieio:写对的话有没有加 @Override 印象中都没有差 @@ 03/15 14:17
8F:→ Killercat:JDK 1.5 or 1.6? 03/15 15:10
9F:→ olys:1.6 @@ 03/15 15:21
10F:→ Killercat:那真费解 XD 03/15 15:30