forjavaremove
❶ java中remove怎么使用
1在对集合进行迭代的时候删除其中的元素最好使用迭代器Iterator的remove方法进行删除
Iterator
ite=list.iterator();
while(ite.hasNext()){
Object
o=ite.next();
if(/*
此处写你希望满足的删除条件
*/)
ite.remove();
}
2
不能在对一个List进行遍历的时候将其中的元素删除掉解决办法是你可以先将要删除的元素用另一个list装起来等遍历结束再remove掉
List
delList
=
new
ArrayList();//用来装需要删除的元素
for(Information
ia:list)
if(ia.getId()==k){
n++;
delList.add(ia);
}
list.removeAll(delList);//遍历完成后执行删除
3
这里的for循环没有涉及到迭代器,也就没有对集合是否发生改变进行判断,所以不会抛出异常
for(int
i=0;i<list.size();i++){
String
str=list.get(i);
if("bbb".equals(str)){
list.remove(str);
}
}
望采纳
❷ java for 冒号 remove
这个问题关键在于obList是什么类型的
举个例子说吧
obList为int型数组,如下
int obList[] = {1, 2, 3, 4, 5, 6, 7, 8};
for(int ob:obList){
if(ob == 3){
obList.remove(ob);
}
}
obList为String的List,如下
List<String> obList= new ArrayList<String>();//泛型也可以是其他类型
obList.add("1");
obList.add("2");
obList.add("3");
obList.add("4");
for(String ob:obList){
int ob1 = Integer.parseInt(ob);
if(ob1 == 3){
obList.remove(ob1);
}
}
关键在于obList的类型,当然也可以使用其他类型,但是如果是if(ob == 3)这种判断是要牵扯到强制转换。
有什么问题Hi我吧@~!good luck~!
❸ java中的“remove”怎样使用
1在对集合进行迭代的时候删除其中的元素最好使用迭代器Iterator的remove方法进行删除
Iterator ite=list.iterator();
while(ite.hasNext()){
Object o=ite.next();
if(/*
此处写你希望满足的删除条件
*/)
ite.remove();
}
2 不能在对一个List进行遍历的时候将其中的元素删除掉解决办法是你可以先将要删除的元素用另一个list装起来等遍历结束再remove掉
List delList = new ArrayList();//用来装需要删除的元素
for(Information ia:list)
if(ia.getId()==k){
n++;
delList.add(ia);
}
list.removeAll(delList);//遍历完成后执行删除
3 这里的for循环没有涉及到迭代器,也就没有对集合是否发生改变进行判断,所以不会抛出异常
for(int i=0;i<list.size();i++){
String str=list.get(i);
if("bbb".equals(str)){
list.remove(str); }
}
望采纳
❹ java中怎么删除数组中的元素
java中删除数组中的元素方法:
我们可以使用Apache Commons Utils 这个库的ArrayUtils类来轻易的删除数组中的元素。不过有一点需要注意,数组是在大小是固定的,这意味这我们删除元素后,并不会减少数组的大小。
所以,我们只能创建一个新的数组,然后使用System.arrayCopy()方法将剩下的元素拷贝到新的数组中。
对于对象数组,我们还可以将数组转化为List,然后使用List提供的方法来删除对象,然后再将List转换为数组。
❺ java for循环生成的对象,如何批量删除
从你给的代码中可以看出,五次循环中,new出的对象都是赋值给了mod这个变量,结束循环,mod的值就是最后一次new出的对象,你通过mod自然只能删除最后一个new出的对象,不管你调用mod.remove()多少次。
想要全部删除,这就要看你是否有对“5次循环中前4次生成的那些对象”的引用,比如放在了一个数组或者容器中,如果有,就可以遍历数组或者容器来删除,否则你无法删除,因为你都没有对它们的引用。
如果还需帮助,你可以把全部的代码粘贴出来看看~
❻ java 迭代器是如何进行remove 的,能否详细的回答一下。
for each语句是由iterator实现的,正如你所说,他们的不同之处就在于remove()方法上。
一般调用删除方法都是集合的方法,例如:
List list = new ArrayList();
list.add(...);
list.remove(...);
但是,如果在循环的过程中调用集合的remove()方法,就会导致循环出错,例如:
for(int i=0;i<list.size();i++){
list.remove(...);
}
循环过程中list.size()的大小变化了,就导致了错误。
所以,如果你想在循环语句中删除集合中的某个元素,就要用迭代器iterator的remove()方法,因为它的remove()方法不仅会删除元素,还会维护一个标志,用来记录目前是不是可删除状态,例如,你不能连续两次调用它的remove()方法,调用之前至少有一次next()方法的调用。
如果你想了解的更透彻,可以查看一下原码,看它是怎么实现的。
因为for each语句是由iterator语句实现的,所以如果你在循环中删除某个元素时,应该用iterator的remove()方法,可是这时你又没有iterator对象,怎么调用呢?
所以,这种情况下,一般还是用iterator来循环访问,并筛选删除。
说白了,for each就是为了让用iterator循环访问的形式看着更好看,写起来更方便。但如有删除操作,当然还是用它原来的形式了。
❼ java 迭代器是如何进行remove 的,能否详细的回答一下。
for
each语句是由iterator实现的,正如你所说,他们的不同之处就在于remove()方法上。
一般调用删除方法都是集合的方法,例如:
List
list
=
new
ArrayList();
list.add(...);
list.remove(...);
但是,如果在循环的过程中调用集合的remove()方法,就会导致循环出错,例如:
for(int
i=0;i
评论
0
0
0
加载更多
❽ 为什么java不要在foreach循环里进行元素的remove/add操作
foreach循环是建立在迭代器的基础之上的,迭代器能够有效工作的前提是集合内的元素保持不变,既不能增加也不能删除,如果直接对集合进行增加和删除,会导致迭代器中的内容与集合的内容产生差异,从而导致错误发生。
可以使用迭代器的remove,能够保证正常工作。
如果存在疑问建议查看List类或者HashMap类的源码。