首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

问一个关于iterator迭代器的写法

2012-10-24 
【求助】问一个关于iterator迭代器的写法一般用IteratoriteratorhistoricTaskInstanceInfoList.iterator()

【求助】问一个关于iterator迭代器的写法
一般用Iterator   iterator   =   historicTaskInstanceInfoList.iterator();再进行迭代的话   无法使用这个类的方法,   只能使用迭代器里面的方法貌似...   这个iterator能不能像下面这样用呢?   谢谢了各位

[code=Java]
      List <HistoricTaskInstanceInfo>   unAssignedTaskList   =   new   ArrayList <HistoricTaskInstanceInfo> ();

      while(historicTaskInstanceInfoList.iterator().hasNext()){
                    if(historicTaskInstanceInfoList.iterator().next().getAssignee().equals(null)){
    unAssignedTaskList.add(historicTaskInstanceInfoList.iterator().next());
      }
}
[/code]


[解决办法]
不可以,这样你每次都是一个新的iterator,如果有一个元素的话,while就死循环了
[解决办法]

Java code
    public Iterator<E> iterator() {        return new Itr();    }
[解决办法]
List <HistoricTaskInstanceInfo> unAssignedTaskList = new ArrayList <HistoricTaskInstanceInfo> (); 

while(historicTaskInstanceInfoList.iterator().hasNext()){ 
if(historicTaskInstanceInfoList.iterator().next().getAssignee().equals(null)) { 
unAssignedTaskList.add(historicTaskInstanceInfoList.iterator().next()); //这里不能出现两遍iterator.next(),不然会出错!!!!



[解决办法]
Java code
for(Iterator<T> itr = list.iterator(); itr.hasNext();){    T t = itr.next();}
[解决办法]
一楼+1
每次循环都会得到一个iterator,就死循环了

热点排行