2013-10-05 17 views
-1

我需要将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 ] 

我怎么能做到这一点?

+1

你试过什么吗?你有什么问题? –

+0

请告诉我们您已经尝试了什么,我们将从那里帮助您。 –

+2

'我该怎么做?'很容易,试一试。 – Aurand

回答

5

假设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); 
} 

,或者更紧凑地(即内嵌变量oldValuenewValue):

for (int i = startFrom; i < upTo && i < arrayList.size(); i += 1) { 
    arrayList.set(i, arrayList.get(i) + incrBy); 
} 
+0

循环遍历所有列表实际上花费了大量时间。 – Sravan2023

+0

@ user2590100:我的代码是否遍布整个列表?我的代码与你接受的答案完全相同,只是它使用了正确的'int'类型而不是'String'。所以你基本上已经接受了一个被打破的答案。 –

+0

我不知道如何接受两个答案 即使你的答案是正确的。 – Sravan2023

0

提示:ArrayList提供给其成员索引访问。您可以轻松地遍历所需的元素。为了递增最后的n元素,请使用for循环和列表的size()

+0

遍历所有列表实际上花费了很多时间。 – Sravan2023

1

假设需要增加已知的部分[from,to]。您在ArrayList的只是循环,并添加你想要的号码:(记住,你可以通过索引访问ArrayList中的项目)

arr - is ArrayList

- 是你希望通过递增数

for (int i = from; i < to; i++){ 
     int item = arr.get(i); 
     arr.set(i,item+number); 
    } 
  • 我这里假设fromto是ArrayList的有效指标,但您应经常检查,如果他们在阵列范围内
+0

循环遍历所有列表实际上是花费时间 – Sravan2023

+0

@MaD:'字符串项目'和'项目+数字'?什么? –

+0

@Erik Allik - 对不起。你绝对正确。 – MaD

相关问题