我有一个带签名的课程
public class MyLinkedList<E extends Comparable <? super E>> extends AbstractList<E>
在里面我有一个ArrayList<E>
对象。
但是,当我这样做时,我收到了错误
if(arr.get(i).compareTo(arr.get(j))>0)
错误是它似乎无法比较非E类型。过了一会儿,错误不知何故消失了,但我的代码仍然没有工作。
我认为提出我的整个代码毫无意义,因为我认为这就是比较问题。 击>
答案 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){...}
}