我之前有一个错误,希望赋值的左侧是变量。所以这一次我把它重写为get并将值设置为k,但是后来我得到了运算符未定义的参数类型。
public static <E extends Comparable<E>> ArrayList<E> insertionSort (ArrayList<E> list)
{
for (int i = 1; i < list.size(); i++)
{
E elements = list.get(i);
int k;
for (k = i - 1; k >= 0 && list.get(k).compareTo(elements) > 0; k--)
list.set(k, list.get(k) + 1); //Error here
list.set(k, list.get(k) + 1) = elements; //Error here
}
for (int k = 0; k <= list.size(); k++)
System.out.println(list.get(k) + "\t");
return list;
}
答案 0 :(得分:1)
您的ArrayList不一定包含数字类型,因此您无法将list.get(k)的值加1。
如果您打算获得下一个索引,那么您需要list.get(k + 1)