我已經存在ArrayList<Integer>
,我想在特定索引處將Integer
加1。但是,它給了我一個錯誤:「作業的左側必須是變量。」這件事情是這樣的:添加到已存在於ArrayList中的整數
arrayListOfIntegers.get(i) += 1;
我已經存在ArrayList<Integer>
,我想在特定索引處將Integer
加1。但是,它給了我一個錯誤:「作業的左側必須是變量。」這件事情是這樣的:添加到已存在於ArrayList中的整數
arrayListOfIntegers.get(i) += 1;
的+=
操作應該作用於一個變量 - 一個局部變量,字段等和整數是不變的,所以你不能真正改變自己的價值directly-- 5將始終爲5,如果您添加1,則最終會生成一個新的數字(6)。
所以,你需要先「搞定」這是給定的索引處的值,然後在「設置」中值指數到來自加入一個原始值的新號碼爲:
arrayListOfIntegers.set(i, arrayListOfIntegers.get(i) + 1);
您不分配值,以任何你需要做的
arrayListOfInteger.set(i, (arrayListOfIntegers.get(i) + 1));
請新增爲什麼這個改變是必要的解釋。 – Bobulous 2014-09-10 20:55:48
@Arkanon:我正在研究它。這個新解釋是否有意義? – StriplingWarrior 2014-09-10 20:57:58
@ dfriend21,因爲'Integer'是不可變的,最重要的是,[Java是通過值傳遞的,而不是通過引用**](http://stackoverflow.com/q/40480/1065197)。 – 2014-09-10 21:01:23