怎样遍历Collection中的集合如Set
2013-12-30 00:00
141 查看
当集合中还有集合时,应该怎样遍历呢?这个问题让我琢磨了一个下午,最后终于有了答案。
当我们使用如下的方法遍历集合时就会陷入到死循环中,一直打印下去,为什么呢?因为每执行完一次打印,重新执行while语句时又会创建新的iterator,所以这样的写法是错误的。
正确的遍历方法是先获取iterator的引用,然后通过这个引用进行遍历。
这样才能够正确地打印。
当我们使用如下的方法遍历集合时就会陷入到死循环中,一直打印下去,为什么呢?因为每执行完一次打印,重新执行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()); } }
这样才能够正确地打印。
相关文章推荐