解决方案 »

  1.   

    程序写得逻辑有问题
    if(i==3) it.next();
    if(i==6) it.next();
    else it.next();仔细看,你会发现当i == 3的时候第一个if和最后的else都会执行,只是因为你少写了一个elseif(i==3) it.next();
    else if(i==6) it.next();
    else it.next();
      

  2.   

    if (i == 6) 前面少了一个 else。
      

  3.   

    使用 Iterator 迭代器应该写成类似,使用 hasNext() 总是推荐的,如果你需要按位置访问就直接用 list.get(i) 就好了,不需要把按索引访问和迭代器访问混合在一起使用:int i = 0;
    for(Iterator iter = list.iterator(); iter.hasNext(); i++) {
         int value = iter.next();
         if (i == 3) low = value;
         else if (i == 6) high = value;
         else ....;
    }
      

  4.   

    楼上正解,当i==3的时候,其实it.next()执行了两次,所以当i==6的时候,其实it已经向后移了七次了
      

  5.   

    你会发现当i == 3的时候第一个if和最后的else都会执行,只是因为你少写了一个else