Java 集合框架:集合视图与迭代的实际集合

Java 集合框架:集合视图与迭代的实际集合,java,collections,Java,Collections,我想了解为什么我们需要集合视图来迭代Java集合。为什么实际集合不用于迭代。我知道视图引用的是实际的备份集合,它只是一个轻量级对象。是否有任何优势,任何设计决策。您的问题是“收藏”。Java是一个表示值集合的接口。值得注意的子接口是,和,仅举几个例子。集合接口是的扩展,因此可以迭代 Java是一个接口,表示键到值的映射。它不是集合的子接口,尽管它是Java的一部分。它不扩展Iterable,也不能直接迭代 由于Map由键/值对组成,因此它提供了以3种方式迭代Map的方法。您可以分别使用keySe

我想了解为什么我们需要集合视图来迭代Java集合。为什么实际集合不用于迭代。我知道视图引用的是实际的备份集合,它只是一个轻量级对象。是否有任何优势,任何设计决策。

您的问题是“收藏”。Java是一个表示值集合的接口。值得注意的子接口是,和,仅举几个例子。
集合
接口是的扩展,因此可以迭代

Java是一个接口,表示键到值的映射。它不是
集合
的子接口,尽管它是Java的一部分。它不扩展Iterable,也不能直接迭代

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

这些是您所指的“视图”,它们是必需的,因为
映射
不是
集合
,也不是
可编辑的


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

您在谈论什么视图?没有用于迭代列表和集合的视图。在Map、keySet、entrySet中,值就是这样的示例。请把上面的灯照一下。如果我错了,我将通过以下与视图相关的链接来查看它,也许你会更好地理解我想问的问题。你的问题是为什么我们需要视图来迭代集合?我们没有。这个链接是关于创建非集合的集合视图,以及创建集合的一部分的视图的,如果它在问题中的话,它可以解释您的很多困惑。您的问题是“为什么实际集合不用于迭代”。你指的是什么样的收藏品?