关于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的第一个迭代器指向的值。