2014-09-10 31 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));