どのように私は、インデックスがのArrayListを使用してJavaで利用者が述べた(ない!後)の前に来るのインデックスを削除するに行きますか?

EMMIE O:

私はあなたがピザのトッピングを入力することができますプログラムに取り組んできました。それはremoveToppings()メソッドを除いて、ほとんど完全なのです。

問題は、私は、そのユーザの選択し、トッピングのすべてのインデックスにトッピングを削除する正しい方法を見つけ出すように見えることはできません、あるBEFOREこと。私が来るのインデックス削除するために、さまざまな方法を発見した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:

あなたはこれを達成するためにforループを使用することができます。

ループはで指定されたインデックス削除することによって開始しますremove変数を。その後、ループがデクリメントされますi、それは-1に達するまで、この時点で、それはあなたが設定されたインデックス以下のすべての要素を削除します。

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

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=20318&siteId=1