gpt4 book ai didi

java - 在 Java 中从 ArrayList 中删除尾随零

转载 作者:行者123 更新时间:2023-11-29 08:21:10 25 4
gpt4 key购买 nike

对于给定的输入 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);
}

我做错了什么?有更好的方法吗?

最佳答案

当然,如果最后一个元素是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]

关于java - 在 Java 中从 ArrayList 中删除尾随零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58088870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com