【问题标题】:Adding to an Integer already in an ArrayList添加到已经在 ArrayList 中的整数
【发布时间】:2014-09-10 20:52:03
【问题描述】:

我有一个已经存在的ArrayList<Integer>,我想在特定索引处为Integer 添加 1。但是,它给了我“赋值的左侧必须是变量”的错误。是这样的:

arrayListOfIntegers.get(i) += 1;

【问题讨论】:

    标签: java arraylist integer


    【解决方案1】:

    += 操作应该作用于一个变量——一个局部变量、一个字段等。而且整数是不可变的,所以你不能直接改变它们的值——5 永远是 5,并且如果你给它加 1,你最终会得到一个新的数字 (6)。

    因此,您需要首先“获取”给定索引处的值,然后将该索引处的值“设置”为原始值加一所得的新数字:

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

    【讨论】:

    • 请解释为什么需要进行此更改。
    • @Arkanon:我正在研究它。这种新的解释有意义吗?
    • @dfriend21 因为Integer 是不可变的,除此之外,Java is pass by value, never by reference
    【解决方案2】:

    您没有将价值分配给您需要做的任何事情

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-23
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 2013-02-19
      • 1970-01-01
      • 2023-04-06
      • 2018-07-12
      相关资源
      最近更新 更多