2014-09-10 2 views
0

나는 이미 존재하는 ArrayList<Integer>을 가지고 있으며 특정 인덱스에 Integer에 1을 더하고 싶습니다. 그러나 "할당의 왼쪽은 변수 여야합니다."라는 오류가 나옵니다. 그것은이 같은 뭔가 다음 += 조작이 변수에 따라 행동하도록되어이미 ArrayList에있는 정수에 추가하기

arrayListOfIntegers.get(i) += 1; 

답변

10

- 지역 변수, 필드, 등 그리고 당신이 정말로 자신의 가치 directly--을 변경할 수 있도록 정수는, 불변 5는 항상 5이며, 1을 더하면 새 숫자 (6)가됩니다.

arrayListOfIntegers.set(i, arrayListOfIntegers.get(i) + 1); 
:

그래서 먼저 지정된 인덱스에있는 값을 "GET", 다음 원래 값에 1을 추가에서 오는 새로운 번호에 ​​해당 인덱스의 값을 "설정"할 필요가

+0

이 변경이 필요한 이유에 대한 설명을 추가하십시오 할 필요가 아무것도에 값을 할당하지 귀하의. – Bobulous

+0

@Arkanon : 나는 그것에 대해 연구하고 있었다. 이 새로운 설명이 의미가 있습니까? – StriplingWarrior

+1

@ dfriend21 왜냐하면'Integer'는 불변이고 그 위에 Java는 참조로 절대로 ** 값으로 전달됩니다 ** (http://stackoverflow.com/q/40480/1065197). –

0

arrayListOfInteger.set(i, (arrayListOfIntegers.get(i) + 1)); 
관련 문제