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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 章浩 中级黑马   /  2015-7-30 14:46  /  954 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下面代码的目的是去除字符串的重复项,在内部for循环里面用了迭代器,可是为什么结束循环之后,迭代器对象资源貌似没有释放,而且无法被重新定义,因为我打印的it.next一直都是初始值,而我的ArrayList确实是变化了的啊
import java.util.*;
class Test1
{
        public static void quChongFu(String s)
        {
                ArrayList al=new ArrayList();
                al.add(s.charAt(0));
                for (int i=1;i<s.length() ;i++ )
                {
                        for (Iterator it=al.iterator() ;it.hasNext() ; )
                        {
                                char c=(char)it.next();
                                System.out.println(c);
                                if (s.charAt(i)!=c)
                                {
                                        al.add(s.charAt(i));
                                        break;
                                }
                        }
                }
        }
        public static void main(String[] args)
        {
                quChongfu("v1123aaaadsdasff");
        }
}

4 个回复

倒序浏览
自己先顶一下
回复 使用道具 举报
写全啊,他还有个子类的迭代器
回复 使用道具 举报
迭代一般用while比较好吧,我的见解,一起学习加油
回复 使用道具 举报
gaoming971366 发表于 2015-7-30 20:15
迭代一般用while比较好吧,我的见解,一起学习加油

视频里面说建议用for的 说结束循环之后资源会释放  但是貌似没有啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马