集合框架:集合视图与实际集合进行迭代

时间:2015-09-07 05:40:45

标签: java collections

我想了解为什么我们需要集合视图来迭代Java集合。为什么实际的Collection不用于迭代。我知道Views正在引用实际的Backed Collection,它只是一个轻量级的Object。是否存在任何优势,任何设计决策。

1 个答案:

答案 0 :(得分:1)

你的问题是"收集"。 Java Collection是表示值集合的接口。值得注意的子接口是ListSetQueue,仅举几例。 Collection接口是Iterable的扩展,因此可以迭代。

Java Map是一个表示键值到映射的接口。它是 NOT Collection的子接口,尽管它是Java Collections Framework的一部分。它扩展Iterable,不能直接迭代。

由于Map由键/值对组成,因此它提供了以3种方式迭代地图的方法。您可以迭代,可以迭代,然后使用keySet()迭代键/值,分别为values()entrySet()

这些是"观点"您指的是,因为Map不是Collection且不是Iterable,所以需要它们。

下次提问时请更清楚,因为所有Collection接口和类都不需要视图来迭代它们。因此,您的问题"为什么我们需要集合视图来迭代Java集合" 是没有意义的。