어떻게 전에 올 인덱스 제거하는 방법에 대한 갈 것이라고 (후하지를!) ArrayLists를 사용하여 Java에서 사용자가 명시된 인덱스를?

emmie O를 :

난 당신이 피자 토핑을 입력 할 수있는 프로그램을 공부하고 있었어요. 그것은 removeToppings () 메소드를 제외하고 거의 완료입니다.

문제는 내가 그 사용자 선택하고 토핑의 모든 인덱스에 토핑을 제거하는 올바른 방법 알아낼 수 없다 전에 그것. 나는 올 인덱스를 제거하기 위해 다양한 방법을 발견했다 AFTER를 하지만 그렇다하더라도 내가 그들을 반대하는 방법을 찾을 수 없습니다.

여기서 문제가되는 방법입니다 :

public static void removeTopping() 
    {
        Scanner in = new Scanner(System.in);

        printPizza();
        System.out.println("What topping do you want to remove?\n"
                + "Keep in mind, this loses everything else above it.\n"
                + "Enter index number: ");
        int remove = in.nextInt();

        toppings.subList(remove, toppings.size()).clear(); //this is the problem line!
    }

printPizza () 메소드가 뭔가를 인쇄 할 것이라고 다음과 같다 :

|index|topping|
|  0  | cheese
|  1  | three
|  2  | cheese
|  3  | two
|  4  | cheese
|  5  | one
|  6  | sauce
|  7  | crust

프로그램이 인덱스 5, 6을 제거하는 것, 내가 5를 입력 말, 그리고 7. 나는 0-5을 제거 할 것입니다. 모든 포인터는 많이 주시면 감사하겠습니다.

rhowell :

이 작업을 달성하기 위해 루프를 사용할 수 있습니다.

루프는에 의해 지정된 인덱스 제거하여 시작됩니다 remove변수를. 그런 다음, 루프는 감소 할 것이다 i그것은이 시점에서, 당신이 설정 한 인덱스 아래 모든 요소를 제거한 것, -1에 도달 할 때까지.

    for (int i = remove; i > -1; i--) {
        myList.remove(i);
    }

추천

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