对于参数类型E,int,运算符+未定义

时间:2014-09-26 18:35:41

标签: java arraylist

我之前有一个错误,希望赋值的左侧是变量。所以这一次我把它重写为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;
}

1 个答案:

答案 0 :(得分:1)

您的ArrayList不一定包含数字类型,因此您无法将list.get(k)的值加1。

如果您打算获得下一个索引,那么您需要list.get(k + 1)