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的代码,所以我复制并修改了它。