펠리-MB :
import java.util.*;
public class AddingIntegers{
public static void main(String []args){
ArrayList <Integer> list = new ArrayList<>(Arrays.asList(10,20,30));
add(list);
}
public static void add(ArrayList<Integer> list) {
for (int i = list.size() - 1; i >= 0; i--) {
if (i % 2 == 0) {
list.add(list.get(i));
} else {
list.add(0, list.get(i));
}
}
System.out.println(list);
}
}
예상 출력 : 20, 10, 20, 30, 30, 10]
실제 출력 : 20, 10, 20, 30, 30, 20]
내가 0 = 마지막 인덱스에 대해, (20)는 지금까지 내가 걱정으로로 (10)를해야 목록의 끝에 추가됩니다 왜 이해가 없습니다.
rgettman :
의 각 루프가 어떻게되는지 보자. 시작합니다 [10, 20, 30]
.
난 2 =
식은
i % 2
이고0
, 그래서 인덱스 2의 요소 (30
)리스트의 말미에 부가된다. 목록은 지금이다[10, 20, 30, 30]
.I = 1 인
식은
i % 2
인1
인덱스 1 (의 요소가되도록20
)리스트의 시작 부분에 삽입된다. 목록은 지금이다[20, 10, 20, 30, 30]
. 참고20
목록의 시작 부분에 지금이다.난 = 0
식은
i % 2
이고0
, 그래서 인덱스 0의 요소 (20
)리스트의 말미에 부가된다. 목록은 지금이다[20, 10, 20, 30, 30, 20]
. 참고20
하지 추가되지 않습니다10
때문에,10
더 이상 목록의 시작 부분이20
있다.