A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class Test1
{

   public static void main(String[] args)
   {  
        //实例化ArrayList类型的集合al
   ArrayList<String> al = new ArrayList<String>();  
   //向集合中添加对象
   al.add("abb");   
   al.add("nihaa");   
   al.add("niaoa");   
   al.add("abc");   
   al.add("cdb");  
   al.add("abc");  
   al.add("cdb");
   //输出
   System.out.println(al.toString());
   //借助迭代器遍历
   Iterator<String> it = al.iterator();
   //
   while(it.hasNext())
    {
           //调用next()方法获得集合中的对象
      String str = it.next();
      //判断str是否为abc
       if(str.equals("abc"))
        {
               //调用remove()方法
        it.remove();
        }

     }
   System.out.println(al.toString());


   }
}

点评

使用List自己的迭代器  发表于 2015-2-7 01:04

14 个回复

倒序浏览
太麻烦了,不如这样

public class Test04 {
        public static void main(String[] args) {
                ArrayList<String> aList = new ArrayList<String>();
                aList.add("abc");
                aList.add("abcd");
                aList.add("gfd");
                aList.add("abc");
                aList.add("igdg");
                aList.add("abc");
                aList.add("bvgf");
                aList.add("ytr");
                System.out.println(aList);

                while (aList.contains("abc")) {
                        aList.remove("abc");
                }
                System.out.println(aList);
        }
}
回复 使用道具 举报
敢问楼主这代码自己测试过吗?貌似这样边使用迭代器遍历,边进行数据的操作,会抛ConcurrentModificationException异常,楼下哥们儿的方法靠谱点儿
回复 使用道具 举报
牛逼啊!!!
回复 使用道具 举报
调用迭代器自身的删除方法似乎不会抛出异常:it.remove();
回复 使用道具 举报 1 0
wujiemin 发表于 2014-10-7 11:13
太麻烦了,不如这样

public class Test04 {

大神厉害,境界高
回复 使用道具 举报
wujiemin 发表于 2014-10-7 11:13
太麻烦了,不如这样

public class Test04 {

此法甚好,但题目要求遍历该ArrayList对象
回复 使用道具 举报
heima_huang 发表于 2015-9-6 15:47
此法甚好,但题目要求遍历该ArrayList对象

这个是不是不能删除比如"deabc"这样的字符串啊,如果后边有重复的怎么删除啊!
回复 使用道具 举报
public class AraayTest {

        public static void main(String[] args) {
                ArrayList<String> aList = new ArrayList<>();
                aList.add("sde");
                aList.add("lfs");
                aList.add("jds");
                aList.add("abc");
                aList.add("abc");
                aList.add("qds");
                aList.add("mds");
                aList.add("abc");
                aList.add("abc");
                ListIterator<String> li = aList.listIterator();
                while (li.hasNext()) {

                        String str = li.next();
                        if (str.equals("abc"))
                                li.remove();
                        else
                                System.out.println(str);
                }

        }
}
回复 使用道具 举报
貌似这里会出现并发修改异常
回复 使用道具 举报
import java.util.ArrayList;

public class Test21 {
        public static void main(String[] args) {
                ArrayList<String> al=new ArrayList<String>();
                al.add("aaa");
                al.add("abc");
                al.add("acc");
                al.add("abb");
                al.add("bbb");
                al.add("ccc");
                al.add("bcc");
                al.add("abc");
                al.add("ccb");
                al.add("cab");
                System.out.println(al.toString());
               
                ArrayList<String> templist=new ArrayList<String>();//创建临时变量templist
                        
                templist.add("abc");//将abc加入到临时变量        
               
                al.removeAll(templist);//清空
               
                System.out.println(al.toString());
        }
        
}
回复 使用道具 举报
貌似有问题
回复 使用道具 举报
给力 。。。。。。。。。。。。。。。。。。。。。。。。。。
回复 使用道具 举报
如果你添加的al.add("abcd");al.add("ab");al.add("cc");你那样做了之后,还是有abc的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马