黑马程序员技术交流社区

标题: 迭代器中的循环跳出问题 [打印本页]

作者: 秦大忠    时间: 2013-8-19 10:10
标题: 迭代器中的循环跳出问题
import java.util.*;
class  Demo
{
        public static void sop(Object obj)
                {
                        System.out.println(obj);
                }
        public static void main(String[] args)
         {       
                 ArrayList al = new ArrayList();
                al.add("Hello1");
                al.add("Hello2");
                al.add("Hello3");
                al.add("Hello4");
                Iterator it = al.iterator();
                while(it.hasNext())
                {
                        sop(it.next());
                        ok:
                        if(it.next()=="Hello2")
                        {
                                break ok;
                        }
                }
        }
}
我本意是想迭代器获取的数等于“Hello2”的时迭代器打印“Hello1”的时候就休息了,可是怎么打印了Hello1,Hello3呢?

作者: 白堇翎    时间: 2013-8-19 10:30
本帖最后由 白堇翎 于 2013-8-19 10:38 编辑

  1. import java.util.*;
  2. class  Demo
  3. {
  4.         public static void sop(Object obj)
  5.                 {
  6.                         System.out.println(obj);
  7.                 }
  8.         public static void main(String[] args)
  9.          {        
  10.                  ArrayList al = new ArrayList();
  11.                 al.add("Hello1");
  12.                 al.add("Hello2");
  13.                 al.add("Hello3");
  14.                 al.add("Hello4");
  15.                 Iterator it = al.iterator();
  16.                 while(it.hasNext())
  17.                 {
  18.                         sop(it.next());
  19.                         ok:
  20.                         if(it.next()=="Hello2")//不能这样写,这样相当于一次循环迭代了2个数据
  21.                         {
  22.                                 break ok;
  23.                         }
  24.                 }
  25.         }
  26. }
复制代码
修改后我去 真是服了这编辑器了 死活不给我加上 我写下面帖子里算了

作者: 白堇翎    时间: 2013-8-19 10:39
本帖最后由 白堇翎 于 2013-8-19 10:47 编辑
  1. while(it.hasNext()){
  2.     String str = (String)it.next();
  3.     sop(str);
  4.     if("hellow2".equals(str))
  5.               break;
  6. }
复制代码

作者: 秦大忠    时间: 2013-8-19 12:16
白堇翎 发表于 2013-8-19 10:30
修改后我去 真是服了这编辑器了 死活不给我加上 我写下面帖子里算了

辛苦你了,同志,我代表人民感谢你!





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2