使用比较函数比较Java中的两个对象

时间:2014-05-09 06:31:04

标签: java

我有一个带签名的课程

public class MyLinkedList<E extends Comparable <? super E>> extends AbstractList<E> 

在里面我有一个ArrayList<E>对象。

但是,当我这样做时,我收到了错误

if(arr.get(i).compareTo(arr.get(j))>0)

错误是它似乎无法比较非E类型。过了一会儿,错误不知何故消失了,但我的代码仍然没有工作。

我认为提出我的整个代码毫无意义,因为我认为这就是比较问题。

2 个答案:

答案 0 :(得分:2)

可能你需要这样做:

if(arr.get(i).compareTo(arr.get(j))>0)

观察compareTo参数

后的右括号

答案 1 :(得分:1)

在冒泡之前先检查一下数组的大小,以避免IndexOutOfBoundsException

private void bubbleUp(int index) 
{
    if(index != 0 && arr.size()>index){...}
}