我需要将ArrayList的某个部分的值递增给定的数字。在ArrayList中将所有整数元素加1
像[ 1 2 3 4 5 6 7 8 9 1 1 1 ]
可以说,我需要通过2 最后3个元素递增,这样的结果将是
[ 1 2 3 4 5 6 7 8 9 3 3 3 ]
我怎么能做到这一点?
我需要将ArrayList的某个部分的值递增给定的数字。在ArrayList中将所有整数元素加1
像[ 1 2 3 4 5 6 7 8 9 1 1 1 ]
可以说,我需要通过2 最后3个元素递增,这样的结果将是
[ 1 2 3 4 5 6 7 8 9 3 3 3 ]
我怎么能做到这一点?
假设arrayList
包含ArrayList<Integer>
实例:
int startFrom = arrayList.size() - 3;
int upTo = arrayList.size();
int incrBy = 2;
for (int i = startFrom; i < upTo && i < arrayList.size(); i += 1) {
int oldValue = arrayList.get(i);
int newValue = oldValue + incrBy;
arrayList.set(i, newValue);
}
,或者更紧凑地(即内嵌变量oldValue
和newValue
):
for (int i = startFrom; i < upTo && i < arrayList.size(); i += 1) {
arrayList.set(i, arrayList.get(i) + incrBy);
}
循环遍历所有列表实际上花费了大量时间。 – Sravan2023
@ user2590100:我的代码是否遍布整个列表?我的代码与你接受的答案完全相同,只是它使用了正确的'int'类型而不是'String'。所以你基本上已经接受了一个被打破的答案。 –
我不知道如何接受两个答案 即使你的答案是正确的。 – Sravan2023
提示:ArrayList
提供给其成员索引访问。您可以轻松地遍历所需的元素。为了递增最后的n
元素,请使用for
循环和列表的size()
。
遍历所有列表实际上花费了很多时间。 – Sravan2023
假设需要增加已知的部分[from,to]。您在ArrayList的只是循环,并添加你想要的号码:(记住,你可以通过索引访问ArrayList中的项目)
arr - is ArrayList
数 - 是你希望通过递增数
for (int i = from; i < to; i++){
int item = arr.get(i);
arr.set(i,item+number);
}
from
和to
是ArrayList的有效指标,但您应经常检查,如果他们在阵列范围内
你试过什么吗?你有什么问题? –
请告诉我们您已经尝试了什么,我们将从那里帮助您。 –
'我该怎么做?'很容易,试一试。 – Aurand