比较通用项目

时间:2015-11-22 23:25:52

标签: java

我正在尝试实现Generic Heap。要插入数据,我必须比较数组的位置。当我把它作为整数时,我能够使用这个

   while (heap[getParent(currentItem)] > heap[currentItem]) {

转换为泛型我研究并尝试过这个:

while (heap[getParent(currentItem)].compareTo(heap[currentItem]) < 0) {

这是不成功的,因为它给出了NullPointerException。如何转换代码以正确比较项目?

1 个答案:

答案 0 :(得分:0)

您需要使用扩展比较器的泛型类型,例如<T extends Comparable<T>>而不是<T>。然后,您将能够使用compareTo方法比较项目。如果您获得空指针异常,则需要确保您尝试调用compareTo的对象不应为null。在您的情况下,那将是heap[getParent(currentItem)]。我建议将heap[getParent(currentItem)]存储到一个字段中,makins肯定它不是空的。