如何从整数列表中删除偶数元素?
List dropEven(List l, int n) {
List to_return = nil();
while(true) {
if(l.isEmpty()) return to_return;
if(n==0) l.remove(n);
Integer i = (Integer)(hd(l));
to_return=append1(to_return,hd(l));
n= n-1;
l=tl(l);
}
}
答案 0 :(得分:2)
使用迭代器并删除偶数值
Iterator i = l.iterator;
int counter = 0;
while(i.hasNext()){
i.next();
if (counter%2 == 0)
i.remove();
counter++;
}
答案 1 :(得分:0)
以下是如何将奇数整数复制到新列表并将其返回的更简洁版本:
List dropEven(List list) {
List toReturn = new ArrayList();
for (int i = 0; i < list.size(); i++) {
if(((int)list.get(i)) % 2 != 0) {
toReturn.add(list.get(i));
}
}
return toReturn;
}
答案 2 :(得分:0)
使用Iterator和删除项目的删除方法。您可以使用布尔来跟踪偶数/奇数,不确定为什么要使用计数器。
System.out.println(Arrays.toString(list.toArray()));
boolean even = false;
for (Iterator iterator = list.iterator(); iterator.hasNext(); even = !even) {
iterator.next();
if(even) iterator.remove();
}
System.out.println(Arrays.toString(list.toArray()));