【发布时间】:2014-02-09 20:56:05
【问题描述】:
我在与 Java 中的接口、类和泛型有关时遇到了一点问题。
首先,我有一个接口来代表优先队列的概念:
public interface PriorityQueue<T> {
// insert object o of class T into priority queue with appropriate element
public void insert(T o);
// remove an element with the highest priority
public T remove();
}
众所周知,我们可以通过堆或列表来实现优先级队列。这是我的堆类:
public class Heap <T implements Comparable> implements PriorityQueue<T>
我想要一个包含 T 类型元素的 ArrayList。我希望我的堆为所有可比较的类型(实现接口 Comparable 的类)做好准备。 T 可以是 String、Double、Integer 或只是我自己的类型(然后我知道我必须编写一个 compareTo 方法......)。
我该怎么做?我的 NetBeans 中有很多错误...
【问题讨论】:
-
您还需要与自己可比较的类型:
<T extends Comparable<? super T>> -
好的,但你能解释一下你的想法吗?我使用了
public class Heap<T extends Comparable> implements IPriorityQueue<T>,一切似乎都很好。我在 Strings、Integers 和 Doubles 上测试了我的堆,我发现整个堆运行正常。 -
你使用的是原始类型
标签: java class generics interface