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

关于Set集合的问题,困扰我一天了!
while(set.iterator().hasNext()){
                                                        setAdd.add(set.iterator().next());
                                                       
                                                }

其中set和setAdd都是TreeSet,问一下,这样写有什么不对?


------解决方案--------------------

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


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


------解决方案--------------------
典型的想当然写代码。
------解决方案--------------------
你把iterator分开来写不就完了.干嘛非要写的一行?
------解决方案--------------------
set.iterator().next() 要 classcust 一下吧?
------解决方案--------------------

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

------解决方案--------------------
不会写的时候就分开来写。不然很容易出错的啊。
------解决方案--------------------
while(set.iterator().hasNext()){
setAdd.add(set.iterator().next());
}

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