从列表中删除偶数元素

时间:2013-08-23 23:10:13

标签: java list

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

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

3 个答案:

答案 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()));