在 Java 的 arrayList 中递增 Integer 的最佳方法

新手上路,请多包涵

在 ArrayList 中递增 Integer 的最干净的方法是什么?

 ArrayList<Integer> ints = new ArrayList<>();
ints.add(5);
ints.add(9);

增加最后一个元素的最干净的方法是什么?

ints.set(ints.size() - 1, ints.get(ints.size() - 1) + 1); 我觉得很丑。

原文由 WVrock 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 480
2 个回答

也许您需要使用另一种数据结构?

 LinkedList<AtomicInteger> ints = new LinkedList<AtomicInteger>();
ints.add(new AtomicInteger(5));
ints.add(new AtomicInteger(9));

ints.getLast().incrementAndGet();

原文由 ursa 发布,翻译遵循 CC BY-SA 4.0 许可协议

您不能增加适当的值,因为 Integer 对象是不可变的。您必须在 ArrayList 中的特定位置获取先前的值,增加该值,并使用它替换同一位置的旧值。

 int index = 42; // whatever index
Integer value = ints.get(index); // get value
value = value + 1; // increment value
ints.set(index, value); // replace value

或者,使用可变整数类型,例如 AtomicInteger (或编写您自己的)。

原文由 Sotirios Delimanolis 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题