【发布时间】:2013-09-19 18:37:46
【问题描述】:
在使用Guava 集合并阅读其文档时,我已经阅读了几次view这个术语。
我一直在寻找关于在这种情况下视图是什么以及它是否是在 Guava 之外使用的术语的解释。它经常被使用here。这个来自 Guava 的 type 名称中有 view。
我的猜测是,一个集合的视图是另一个具有相同数据但结构不同的集合;例如,当我将 java.util.HashSet 中的条目添加到 java.util.LinkedHashSet 时,后者将是前者的视图。对吗?
如果有的话,谁能给我一个链接到公认的view定义?
谢谢。
【问题讨论】:
-
不,我认为这不正确。如果您说
LinkedHashSet lhs = new LinkedHashSet (hs)其中hs是HashSet,lhs将具有与hs相同的元素引用,但它将是它自己的数据结构。如果您从lhs中删除一个元素,它不会影响hs,反之亦然。所以它们是不同的集合。但是如果你使用Collections.unmodifiableSet,那么你会得到一个引用同一个集合的视图。
标签: java collections guava