2 myc 100 myc_100 于 2012.10.25 11:31 提问

从通用的arraylist中删除项目元素

我有一个通用的arraylist对象,在这里我想要删除一些元素。问题是当我用for循环迭代列表时,却不能做一个remove()' s的简单序列,因为元素在每次移除后都会发生变化。怎么在通用的arraylist中删除项目元素?

5个回答

O_Casper_ne
O_Casper_ne   2012.10.25 16:22
已采纳

使用Iterator移除元素

如:

Iterator itr = list.iterator();
    String strElement = "";
    while(itr.hasNext()){

      strElement = (String)itr.next();
      if(strElement.equals("2"))
      {
        itr.remove();
      }
znl_12
znl_12   2012.10.25 17:33

创建一个单独的ArrayList数据索引,以脱离原来的ArrayList,然后通过for循环遍历删除那些元素。

ArrayList<Myobj> arr = new ArrayList<Myobj>();
    for (Myobj o : arr){
    arr.remove(arr.indexOf(o))
     }
Baby_Bonnie
Baby_Bonnie   2012.10.29 11:33

如果在ArrayList中有你想要删除的对像,你要使用:

mArrayList.remove(object);

或者使用 Iterator来删除对象:

while(iterator.hasNext()){
    if(iterator.next() == some condition for removal){
        iterator.remove();
    }
}
diaomao357
diaomao357 mArrayList.remove(object); 这个如果object为空会不会报异常...
3 年多之前 回复
wang_huanming
wang_huanming   2015.05.21 18:03

你也可以使用倒序的方式进行遍历删除

avenccssddnn
avenccssddnn   2017.11.27 17:35

使用Iterator移除元素

如:

Iterator itr = list.iterator();
String strElement = "";
while(itr.hasNext()){

  strElement = (String)itr.next();
  if(strElement.equals("2"))
  {
    itr.remove();
  }
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!