-4

我们如何从整数列表中删除偶数元素?

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);
    }
}
4

3 回答 3

2

使用迭代器并删除偶数

Iterator i = l.iterator;
int counter = 0;
while(i.hasNext()){
i.next();
if (counter%2 == 0)
i.remove();
counter++;
}
于 2013-08-23T23:19:19.587 回答
0

使用 Iterator 和它的 remove 方法来删​​除项目。您可以使用布尔值来跟踪偶数/奇数,不知道为什么要使用计数器。

    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()));
于 2013-08-23T23:30:20.200 回答
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;
}
于 2013-08-23T23:23:29.737 回答