推 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)
→ olys:感謝eieio!public int compare前加個@Override就正常了! 03/15 13:36
推 LaPass:原來是漏掉@Override..... 這個ide都沒顯示嗎? = = 03/15 13:45
→ olys:我是用Eclipse, 不過java不會自動override嗎? 03/15 13:47
推 LaPass:印象中會.... 03/15 13:49
推 eieio:真神奇,我說加 @Override 只是讓 compiler 檢查一下 03/15 14:15
→ eieio:寫對的話有沒有加 @Override 印象中都沒有差 @@ 03/15 14:17
→ Killercat:JDK 1.5 or 1.6? 03/15 15:10
→ olys:1.6 @@ 03/15 15:21
→ Killercat:那真費解 XD 03/15 15:30