while(set.iterator().hasNext()){
                            setAdd.add(set.iterator().next());
                            
                        }其中set和setAdd都是TreeSet,问一下,这样写有什么不对?

解决方案 »

  1.   


    Iterator it=set.iterator();
    然后
    while(it.hasNext()){
      set(it.next());
    }
      

  2.   

    每次set.iterator()得到一个Iterator的指针都指向0位置,当然不能遍历了
      

  3.   

    set<A> setAdd<A>
    set setAdd保存中同一个类的对象
    否则要强转(有父子关系)
      

  4.   

    set和setAdd不是同一个对象吧Iterator it=set.iterator();
    while(it.hasNext()){
      setAdd.add(it.next());                                                    
    }
      

  5.   


    回楼上    不是同一个对象    我按你写的会进入死循环    这部分while循环是在一个for循环中
      

  6.   

    你把iterator分开来写不就完了.干嘛非要写的一行?
      

  7.   

    set.iterator().next() 要 classcust 一下吧?
      

  8.   


    Iterator it=set.iterator();
    然后
    while(it.hasNext()){
      set(it.next());
    }
      

  9.   

    while(set.iterator().hasNext()){
      setAdd.add(set.iterator().next());
    }第一行set.iterator()取出set指向头结点的迭代器,如果不空它肯定有值啊,也就是始终是true。
    第二行setAdd总在添加set的第一个迭代器指向的值。