大家好,需要用PriorityQueue进行排列排列的对象是一个类E, 里面的成员变量时x,y,z在类里面我写好了比较的方法:
public int compareTo(E e){
return (this.z - e.z);
}但是我不知道如何让PriorityQueue去使用排序:
PriorityQueue pq = new PriorityQueue(10);
这样是自然排序,无法处理对象E我上网看了文档,需要用一个interface来告诉PriorityQueue排序方法:
PriorityQueue pq = new PriorityQueue(10, Comparator<E> comparator);然后写一个comparetor的interface:
public interface EdgeComparetor<Edge> {
int campare(E e1, E e2){
return e2.compareTo(e1);
}
}但是我不会写interface,编译器始终提示我在interface文件中,无法识别E e1和E e2
本人新接触Java,希望大家赐教
public int compareTo(E e){
return (this.z - e.z);
}但是我不知道如何让PriorityQueue去使用排序:
PriorityQueue pq = new PriorityQueue(10);
这样是自然排序,无法处理对象E我上网看了文档,需要用一个interface来告诉PriorityQueue排序方法:
PriorityQueue pq = new PriorityQueue(10, Comparator<E> comparator);然后写一个comparetor的interface:
public interface EdgeComparetor<Edge> {
int campare(E e1, E e2){
return e2.compareTo(e1);
}
}但是我不会写interface,编译器始终提示我在interface文件中,无法识别E e1和E e2
本人新接触Java,希望大家赐教
解决方案 »
- 请大家看看这个java程序,为什么输出结果不对呢
- 关于多线程的wait和notify产生的问题。
- PrintWriter类的flush()方法困惑,
- 如何比较两个 int[] 数组的相似度
- 关于netscape.javascript
- 100分求:用JAVA写字符串化简的方法
- applet的显示问题,大家帮帮我呀?!!!
- java怎么调用操作系统?比如能不能调用windows API?loadLibrary和load两个方法怎么调用动态库?谁能提供示例?谢谢
- 对think in java中的问题
- JB7做出来的本地可执行文件竟然要依靠jb路径下的jre/hotspot/*???
- 在一个按钮中同时添加了两个ActionListener对象会怎样
- Applet中不能显示图片
写一个类 实现 Comparator接口就可以。。
楼主你写的 那个不可以的,接口是不能有实现代码的。public class PriorityQueueComparator implements Comparator
{
//int campare(E e1, E e2){
// return e2.compareTo(e1);
// }
//这里按你的规则实现这个接口
}然后调用的时候就是这样了PriorityQueue pq = new PriorityQueue(10, new PriorityQueueComparator());
public class PriorityQueueComparator implements Comparator
Comparator cannot be resolved to a typePriorityQueue<Edge> q = new PriorityQueue<Edge>(51,new PriorityQueueComparator());
The constructor PriorityQueue<Edge>(int, PriorityQueueComparator) is undefinedcomparator类实现可能还有问题
public class PriorityQueueComparator implements Comparator<Edge> {
int campare(Edge e1, Edge e2) {
return e2.compareTo(e1);
} @Override
public int compare(Edge o1, Edge o2) {
// TODO Auto-generated method stub
return o1.compareTo(o2);
}
}
我对java不懂,方法多了一个重写就能通过编译是怎么回事?