Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从列表中删除偶数元素_Java_List - Fatal编程技术网

Java 从列表中删除偶数元素

Java 从列表中删除偶数元素,java,list,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));

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

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

使用迭代器并删除偶数值

Iterator i = l.iterator;
int counter = 0;
while(i.hasNext()){
i.next();
if (counter%2 == 0)
i.remove();
counter++;
}

以下是如何将奇数整数复制到新列表并返回它的更清晰版本:

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;
}
List-drop偶(List-List){
List toReturn=new ArrayList();
对于(int i=0;i
使用迭代器及其删除方法删除项目。您可以使用布尔值跟踪偶数/奇数,但不确定为什么要使用计数器

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

除了第一行中的问题外,您的代码是否存在任何问题?它是否抛出任何异常。或者它给出了意外的输出?你需要告诉我们。这就是我一直在使用的,但它似乎不起作用。所以我想知道我是否遗漏了什么@RohitJainDoesn似乎无法很好地解释具体问题。你需要告诉我们它怎么不起作用。运行这段代码得到了什么输出?这是java吗?看起来有人试图将java扭曲成功能设计模式。我们是否应该猜测您没有提供的方法在做什么?此代码导致java.lang.IllegalStateException,猜猜为什么您使用ArrayList,它不应该给出IllegalStateException,在列表实现之间不会改变,并且它说它将导致IllegalStateException超过它。。i.next();这甚至不能编译。2) 当
l
不为空时,这将抛出
NullPointerException
。3) 从返回
集合的方法返回
null
是一个糟糕的主意。4)
n
从未使用过。@DannyMo我修复了代码。它脏的原因是因为我尽量靠近OP的代码,所以我复制并修改了它。