如题,求解,在for新循环,即增强型循环中,能不能删除集合的元素。。
记得for新循环就是一个迭代器吧,那它要怎么调用他的remove方法,是还要在循环体里实例化Iterate吗
可以用一般的for循环按照下标从后往前遍历。从前往后遍历的时候删除元素会丢出异常。
使用迭代器进行循环集合,然后使用迭代器的remove方法,其他的会引发异常
用迭代器循环,然后再用迭代器中的remove()方法删除你要删除的集合元素
不行,要做删除只能用迭代器,不然都会或多或少闯荡出现问题
可以不使用迭代器,但是你要对索引进行计算
比如
for(int i = 0;i < size; i++){
if(condition){
list.remove(i);
// 这下面要对i做一个计算,不过我忘记了具体是怎么算的,你要自己试验一下
}
}
可以将要删除的数据存放在一个新的数组中,然后使用removeAll方法进行删除即可,不多说直接上代码
public static void main(String[] args)
{
List list = new ArrayList<>();
for (int i = 0; i < 10; i++)
{
list.add(i+1);
}
for (Integer temp : list)
{
System.out.println(temp);
}
System.out.println("---------------------------------begin delete element");
List deleteList = new ArrayList<>();
for (Integer deleteElement : list)
{
if(deleteElement%2==0)
{
deleteList.add(deleteElement);
}
}
list.removeAll(deleteList);
deleteList = null;
for (Integer temp : list)
{
System.out.println(temp);
}
}
for循环集合有对应的remove方法或转换特iterate来remove
http://blog.csdn.net/strutce/article/details/45937415
用迭代器循环,然后使用迭代器的remove方法