怎样遍历Collection中的集合如Set
怎样遍历Collection中的集合如Set
独鸣在彼岸 发表于4年前
怎样遍历Collection中的集合如Set
  • 发表于 4年前
  • 阅读 36
  • 收藏 0
  • 点赞 0
  • 评论 0

当集合中还有集合时,应该怎样遍历呢?这个问题让我琢磨了一个下午,最后终于有了答案。

当我们使用如下的方法遍历集合时就会陷入到死循环中,一直打印下去,为什么呢?因为每执行完一次打印,重新执行while语句时又会创建新的iterator,所以这样的写法是错误的。


Collection<Set<String>> col = new ArrayList<HashSet<String>>;
while(col.iterator.next.iterator.hasNext()){
    System.out.println(col.iterator.next.iterator.next());
}

正确的遍历方法是先获取iterator的引用,然后通过这个引用进行遍历。

Iterator it = col.iterator();
while (it.hasNext()) {
   Set<String> set = (Set<String>) it.next();
   Iterator i = set.iterator();
   while (i.hasNext()) {
       System.out.println(i.next());
   }
}



这样才能够正确地打印。


共有 人打赏支持
粉丝 5
博文 188
码字总数 35784
×
独鸣在彼岸
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: