Collections
实用程序类具有对collection
进行操作的静态方法
。例如,
Collections.Sort(list)
对列表进行排序。
为什么不是类型的方法
static <T> Iterator<T> iterator() { }
通过这种方式,我可以获得一个遍历我的集合的迭代器
Iterator it = Colletions.iterator(list)
集合确实有 emptyIterator() 和 emptyListIterator()
,但我不明白它们的用途是什么?
最佳答案
不需要 Collections.iterator(Collection)
方法,因为 Collection
接口(interface)有一个 iterator()
方法返回一个迭代器
已经。只有当您已经有一个 Collection
并且 Iterator
无论如何都与 Collection
耦合时,它才有意义。 Collections.iterator(Collection c)
会做什么?它可能只会调用 return c.iterator();
。
我假设 Collections.emptyIterator()
和 Collections.emptyListIterator()
为调用者节省了创建空 Collection
的过程/List
只是为了调用它的 iterator()
/listIterator()
方法。
GRASP pattern "Information Expert"将表明 Iterator
的设计将与其迭代的类一起使用,因为该类本身具有创建 Iterator
所需的信息。
关于java - 为什么 Collections 实用程序类在 Java 中没有 Iterator 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19798701/