2014-09-10 30 views
0

我已經存在ArrayList<Integer>,我想在特定索引處將Integer加1。但是,它給了我一個錯誤:「作業的左側必須是變量。」這件事情是這樣的:添加到已存在於ArrayList中的整數

arrayListOfIntegers.get(i) += 1; 

回答

10

+=操作應該作用於一個變量 - 一個局部變量,字段等和整數是不變的,所以你不能真正改變自己的價值directly-- 5將始終爲5,如果您添加1,則最終會生成一個新的數字(6)。

所以,你需要先「搞定」這是給定的索引處的值,然後在「設置」中值指數到來自加入一個原始值的新號碼爲:

arrayListOfIntegers.set(i, arrayListOfIntegers.get(i) + 1); 
+0

請新增爲什麼這個改變是必要的解釋。 – Bobulous 2014-09-10 20:55:48

+0

@Arkanon:我正在研究它。這個新解釋是否有意義? – StriplingWarrior 2014-09-10 20:57:58

+1

@ dfriend21,因爲'Integer'是不可變的,最重要的是,[Java是通過值傳遞的,而不是通過引用**](http://stackoverflow.com/q/40480/1065197)。 – 2014-09-10 21:01:23

0

您不分配值,以任何你需要做的

arrayListOfInteger.set(i, (arrayListOfIntegers.get(i) + 1));