2017-12-05 1 views
-1

나는이 for 루프에서 향상된 for 루프를 만드는 데 어려움을 겪고있다. 나는 for for 루프를 향상된 for 루프로 변환하려면 어떻게해야합니까?

for (int i = 0; i < stringList.size(); i ++) 
{ 
    stringList.set(i, stringList.get(i) + " done"); 
} 

저를 도와 주셔서 감사합니다 "완료"값 + 동일하게 내 String ArrayList의 각 요소를 원한다.

+1

가능한 [Java for enhanced for loop의 구문은 무엇입니까?] (https://stackoverflow.com/questions/11685305/what-is-the-syntax-of-enhanced-for-loop- in-java) –

+1

특정 위치의 값을이 값으로 바꿀 수는 없으며/할 수 없습니다. 'List.get' 만하면, 괜찮습니다,하지만'List.set'는 문제입니다. – AxelH

+2

*** 왜 *** 위의 코드를 향상된'for'로 바꾸시겠습니까? –

답변

3

향상된 for 루프를 사용할 수 없습니다.

하나의 (a RandomAccess 목록은 괜찮습니다) 기존 코드를 계속 사용하거나 List.replaceAll 사용 : 당신은 여전히 ​​사전 자바 8 버전에 부착하는 경우,

stringList.replaceAll(s -> s + " done"); 

를 또는,를 사용 Java 8 Javadoc 코드 :

final ListIterator<String> li = stringList.listIterator(); 
while (li.hasNext()) { 
    li.set(li.next() + " done"); 
} 
0

당신은 강화 for로 교체 할 수 있습니다,하지만 정말 좋은 사용이 아니다 :

,
int i = 0; 
for (String s : stringList) 
{ 
    stringList.set(i++, s + " done"); 
} 
관련 문제