我在解决以下问题时遇到了一些困难。我能够知道它使用Generics并且知道它可以帮助它删除类型的一些运行时错误,但我无法想到为它写的答案。
Java类用于存储优先级队列的元素,优先级队列将按优先级顺序排序。这个类的标题是:
public class PriorityQueue<T extends Comparable<T>>
解释<T extends Comparable<T>>
对优先级队列实现中的代码以及创建优先级队列实例的客户端代码的重要性。
答案 0 :(得分:3)
这意味着T类型应该有一个compareTo方法,您可以使用它来进行排序。这意味着您不必找到硬编码排序的方法;任何具有合适比较方法的T型都可以使用。
供参考:http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Comparable.html
答案 1 :(得分:0)
这允许PriorityQueue
使用T.compareTo(T)
而不是需要依赖提供的Comparator<T>
对象
答案 2 :(得分:0)
所有这一切都要求类型T
的元素与同类型的其他对象(Comparable<T>
)相当。使用而不是Comparable<?>
的原因是后者只是说与某种类型相当。
但是由于优先级队列仅保存T
类型的对象,因此仅比较T
类型的其他对象,因此要求T
与其他对象相比是公平的。同类型。