【发布时间】:2020-01-25 02:00:45
【问题描述】:
对于给定的输入 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);
}
我做错了什么?有没有更好的方法来做到这一点?
【问题讨论】:
-
您的程序是否给出了错误的输出?如果是这样,请将其包含在问题中。
标签: java arraylist iterator java-stream