【发布时间】:2014-09-10 20:52:03
【问题描述】:
我有一个已经存在的ArrayList<Integer>,我想在特定索引处为Integer 添加 1。但是,它给了我“赋值的左侧必须是变量”的错误。是这样的:
arrayListOfIntegers.get(i) += 1;
【问题讨论】:
我有一个已经存在的ArrayList<Integer>,我想在特定索引处为Integer 添加 1。但是,它给了我“赋值的左侧必须是变量”的错误。是这样的:
arrayListOfIntegers.get(i) += 1;
【问题讨论】:
+= 操作应该作用于一个变量——一个局部变量、一个字段等。而且整数是不可变的,所以你不能直接改变它们的值——5 永远是 5,并且如果你给它加 1,你最终会得到一个新的数字 (6)。
因此,您需要首先“获取”给定索引处的值,然后将该索引处的值“设置”为原始值加一所得的新数字:
arrayListOfIntegers.set(i, arrayListOfIntegers.get(i) + 1);
【讨论】:
Integer 是不可变的,除此之外,Java is pass by value, never by reference。
您没有将价值分配给您需要做的任何事情
arrayListOfInteger.set(i, (arrayListOfIntegers.get(i) + 1));
【讨论】: