我想了解为什么我们需要集合视图来迭代Java集合。为什么实际的Collection不用于迭代。我知道Views正在引用实际的Backed Collection,它只是一个轻量级的Object。是否存在任何优势,任何设计决策。
答案 0 :(得分:1)
你的问题是"收集"。 Java Collection
是表示值集合的接口。值得注意的子接口是List
,Set
和Queue
,仅举几例。 Collection
接口是Iterable
的扩展,因此可以迭代。
Java Map
是一个表示键值到映射的接口。它是 NOT Collection
的子接口,尽管它是Java Collections Framework的一部分。它不扩展Iterable
,不能直接迭代。
由于Map
由键/值对组成,因此它提供了以3种方式迭代地图的方法。您可以迭代键,可以迭代值,然后使用keySet()
迭代键/值对,分别为values()
和entrySet()
。
这些是"观点"您指的是,因为Map
不是Collection
且不是Iterable
,所以需要它们。
下次提问时请更清楚,因为所有Collection
接口和类都不需要视图来迭代它们。因此,您的问题"为什么我们需要集合视图来迭代Java集合" 是没有意义的。