JavaでのArrayListから末尾のゼロを削除します

ネールヴァーサ:

与えられた入力ArrayListの私のためにすべての主要なまたは非ゼロ要素の間で0が残っているしたいのですが、ArrayListの末尾にある0の任意の数を取り除きたいです。

入力:

0、11、0、0、0、11、11、0、0、0

予想される出力:

0、11、0、0、0、11、11

私の解決策:

    private List<Integer> foo() {

        List<Integer> list = Arrays.asList(0, 11, 0, 0, 0, 11, 11, 0, 0, 0);
        Collections.reverse(list);
        Iterator<Integer> iterator = list.iterator();
        int i = 0;
        while (iterator.hasNext() && 0 != iterator.next()) {
            ++i;
        }
        return list.subList(0, i);
    }

何が私が間違っているのでしょうか?これを行うには良い方法はありますか?

azurefrog:

それはだ場合は確かに、ちょうど最後の要素を取り除きます0そうでないまで繰り返します。

たとえば、

    List<Integer> list = new ArrayList<>(Arrays.asList(0, 11, 0, 0, 0, 11, 11, 0, 0, 0));
    while (list.get(list.size()-1) == 0) {
        list.remove(list.size()-1);
    }
    System.out.println(list); // [0, 11, 0, 0, 0, 11, 11]

おすすめ

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