2015-09-07 39 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