在Java中使用arrayList增加Integer的最佳方法

WVr*_*ock 6 java integer arraylist

在ArrayList中增加Integer的最简洁方法是什么?

ArrayList<Integer> ints = new ArrayList<>();
ints.add(5);
ints.add(9);
Run Code Online (Sandbox Code Playgroud)

增加最后一个元素的最简洁方法是什么?

ints.set(ints.size() - 1, ints.get(ints.size() - 1) + 1); 对我来说似乎很难看.

Sot*_*lis 14

由于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
Run Code Online (Sandbox Code Playgroud)

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


urs*_*rsa 7

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

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

list.getLast().incrementAndGet();
Run Code Online (Sandbox Code Playgroud)