【问题标题】:how to increment values stored in an integer list java如何增加存储在整数列表java中的值
【发布时间】:2019-09-01 11:42:37
【问题描述】:

我正在尝试增加存储在列表中的 int 变量的值

List<Integer> unitsCounter = new ArrayList<Integer>();

我该怎么做?我试过了:

unitsCounter.get(0).add(i);

但这不起作用,我想不出其他任何东西,也找不到与我的问题相关的搜索结果。

有什么想法吗?谢谢!

【问题讨论】:

  • unitsCounter.set(0,unitsCounter.get(0)+i)
  • unitsCounter.set(0,unitsCounter.get(0)+1)
  • 这完美!这种语法“(0,unitsCounter.get(0)+1)”有没有名字,因为我以前没见过?

标签: java list arraylist add


【解决方案1】:

unitsCounter.get(0) 将Integer 可以是unboxed 返回到int,因此the additive operator + 将起作用。

unitsCounter.set(0, unitsCounter.get(0) + i);

然后unitsCounter.get(0) + i 的结果将被自动装箱并存储在索引0 处的unitsCounter。

【讨论】:

    【解决方案2】:

    一个稍微花哨的方法是:

    unitCounter.subList(0, 1).updateAll(v -> v + 1);
    

    但这可能比:

    unitCounter.set(0, unitCounter.get(0) + i);
    

    另一种方法是使用专为计算事物而设计的元素类型,例如LongAdder:

    List<LongAdder> unitCounter = ...
    
    unitCounter.get(0).add(i);
    

    【讨论】:

    • 如何添加到 LongAdder?
    • @DarthBusiness 使用 increment 方法(添加 1)或 add(添加任意数量)。
    猜你喜欢
    • 1970-01-01
    • 2020-11-01
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多