2015-09-07 38 views
-1

我想了解为什么我们需要集合视图来遍历Java集合。为什么实际的Collection不用于迭代。我了解Views是指实际的Backed Collection和它的一个轻量级对象。是否有任何优势,任何设计决策。集合框架:集合视图和实际集合用于迭代

+2

你在说什么观点?没有用于迭代列表和集合的视图。 – Andreas

+0

在Map中,keySet,entrySet,Values就是这样的例子。请在上面指出一些情况。如果我错了。 – bharatj

回答

1

你的问题说“集合”。 Java Collection是一个表示值集合的接口。值得注意的子接口是List,SetQueue,只是提到了一些。 Collection接口是Iterable的扩展,并且可以如此迭代。

Java的Map是表示对值的键的映射的接口。它是NOTCollection的子接口,尽管它是Java的Collections Framework的一部分。它确实是而不是延伸Iterable,并且不能直接迭代。

由于Map包括键/值对,它提供了在3种方式迭代映射方法。您可以遍历,你可以迭代,你可以遍历键/值,分别使用keySet()values()entrySet()

这些是您所指的“视图”,因为Map不是Collection而不是Iterable

请你问一个问题更加明确下一次是,因为所有的Collection接口和类不需要为了重复它们。因此,您的问题“为什么我们需要集合视图来遍历Java集合”是没有意义的。

+0

我正在通过以下链接相关的视图看看它。 http://softwarecave.org/2014/03/19/views-in-java-collections-framework/,可能你会更好地了解我想问什么。 – bharatj

+0

你的问题是关于为什么我们需要视图迭代集合?我们*不*。如果问题存在,那么这个链接可能会解释很多混淆,这个链接是关于创建非集合的集合视图以及创建集合的* part *视图。你的问题在“为什么实际的集合不用于迭代”。你指的是什么*实际*集合? – Andreas