그들의 인덱스의 계수에 따라 ArrayList에에 정수를 추가

펠리-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 % 21인덱스 1 (의 요소가되도록 20)리스트의 시작 부분에 삽입된다. 목록은 지금이다 [20, 10, 20, 30, 30]. 참고 20목록의 시작 부분에 지금이다.

  • 난 = 0

    식은 i % 2이고 0, 그래서 인덱스 0의 요소 ( 20)리스트의 말미에 부가된다. 목록은 지금이다 [20, 10, 20, 30, 30, 20]. 참고 20하지 추가되지 않습니다 10때문에, 10더 이상 목록의 시작 부분이 20있다.

추천

출처http://43.154.161.224:23101/article/api/json?id=118243&siteId=1