int x;
int y;
float distance;
public Point(int x, int y, float distance){
this.x = x;
this.y = y;
this.distance = distance;
}
}
PriorityQueue<Point> minHeap = new PriorityQueue<Point>( (a,b) -> ((float) a.distance - (float) b.distance) );
PriorityQueue<Point> minHeap = new PriorityQueue<Point>( (a,b) -> ((float) a.distance - (float) b.distance) );
^
possible lossy conversion from float to int```
------------------------------------------------------------------------------------
I dont know why is not accepting my comparator method. Any ideas? thanks in advance.
这是因为 compare
方法返回一个 int
但是,既然你得到了一个 int
之间的操作 float
编译器告诉你一些数据可能会丢失(实际上会丢失,所有的小数都会丢失,但你并不关心,因为它只是一个比较器)。
你可以使用 Float.compare(f1, f2)
在
PriorityQueue<Point> minHeap = new PriorityQueue<Point>( (a,b) -> Float.compare(a.distance, b.distance));