日期:2014-05-20  浏览次数:20788 次

求解关于Iterator的remove()方法操作后的遍历问题
 while (iterator.hasNext()) {
         Org org = (Org) iterator.next();
          String  orgId=org.getId();
               if(commOrgId.equals(orgId)){
                   iterator.remove();
                }
我的意思是通过remove()结束之后,我从debug看到iterator里面的值去掉了,但是我想把去掉之后的这个iterator里的值重新遍历,结果是他遍历不是从下标0开始,而是从你最后移除的位置,我想能不能让她重最开始遍历(移除之后的)。。。。
------解决方案--------------------
我今天在线等,急解决。。。。
------解决方案--------------------
这需求好奇怪,前面不是遍历过了么,为什么还要遍历呢。。。
要是再从0开始,那不死循环了么,怎么结束呢。。。

像你这种需求不适合用iterator,直接for(int i=0; i<xxx; i++)吧。。。
------解决方案--------------------
不是啊,这是和另一个iterator遍历进行比较,把这个iterator中和那个相同的移除,可能是两个相同,都移除后,然后重新遍历,因为我要返回这个iterator让别的用(现在别的用的时候就是不是从第一个开始遍历),