2014-09-26 43 views
-1

我有一個以前的錯誤,希望賦值的左側是一個變量。所以這次我重寫了它,並將值設置爲k,但是我得到的運算符未定義爲參數類型。運算符+未定義爲參數類型E,int

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; 
} 
+3

你有什麼期望'list.get(K)+ 1'辦?你可能是指'list.get(k + 1)'?你期望'list.set(...)= elements;'的效果是什麼?這僅僅是無效的...... – 2014-09-26 18:37:27

+0

(基本上,當我們不知道你在做什麼的時候,很難幫助你,我們可以解釋你的代碼有什麼問題,但不能說明正確的代碼是什麼。 ) – 2014-09-26 18:39:17

+1

哦,等一下,我看到我做了什麼。當我有前面的錯誤,我有它list.get(k + 1)= list.get(k)。我的錯。 – Judas 2014-09-26 18:40:10

回答

1

您的ArrayList不一定包含數值類型,所以您不能將1添加到list.get(k)的值。

如果你的意思是獲得下一個指數那麼你需要list.get(K + 1)

相關問題