在使用Guava集合并阅读其文档时,我已经阅读了几次“术语 视图”
。
我一直在寻找一种解释,说明在这种情况下视图是什么以及它是否在Guava之外使用。在这里经常使用。番石榴的这种类型在其名称中具有
视图 。
我的猜测是,一个集合的视图是另一个具有相同数据但结构不同的集合。例如,当我将条目从a添加java.util.HashSet
到java.util.LinkedHashSet
后者时,将是前者的视图。那是对的吗?
有人可以给我链接到一个公认的 view 定义(如果有)的链接吗?
谢谢。
另一个对象的 视图 根本不包含其自己的数据。它的所有操作都是根据对另一个对象的操作来实现的。
例如,a的keySet()
视图Map
可能具有如下所示的实现:
class KeySet implements Set<K> {
private final Map<K, V> map;
public boolean contains(Object o) {
return map.containsKey(o);
}
...
}
特别是,只要您修改视图的 后备对象 (在此为Map
背景)
,keySet()
该视图就会反映相同的更改。例如,如果您致电map.remove(key)
,则无需进行任何其他操作即可keySet.contains(key)
返回false
。
或者,Arrays.asList(array)
提供List
该阵列的视图。
String[] strings = {"a", "b", "c"};
List<String> list = Arrays.asList(strings);
System.out.println(list.get(0)); // "a"
strings[0] = "d";
System.out.println(list.get(0)); // "d"
list.set(0, "e");
System.out.println(strings[0]); // "e"
视图只是查看原始支持对象中数据的另一种方式-
Arrays.asList
使您可以使用List
API访问普通数组;Map.keySet()
使您可以Map
像完全完美一样访问a的键Set
-所有这些都
无需 复制数据或创建另一个数据结构。
通常,使用视图而不是进行复制的优点是效率。例如,如果您有一个数组,并且需要将其传递到采用的方法,则List
您无需创建新ArrayList
的数据副本和完整的数据副本-
Arrays.asList
视图仅占用恒定的额外内存,并且仅实现所有List
通过访问原始数组的方法。
我取一个imageView,然后取一个CollectionView。我很困惑如何设计单元格,哪些元素在单元格中拖放
主要内容:1 什么是Java集合,2 Java集合层次结构,3 Java Collection接口的方法,4 Iterator接口,5 Iterable接口,6 Collection接口,7 List接口,6 ArrayList,7 LinkedList,8 Vector,9 Stack,10 Queue接口,11 PriorityQueue,12 Deque接口,13 ArrayDeque,14 Set接口,15 HashSet,16 LinkedHashSet,17 SortedSet接口,
考虑下面的API方法,它取自Shiro的接口,但也可能存在于其他库中: 是的,即使是现在,仍然有库使用原始类型,可能是为了保持Java 1.5之前的兼容性?! 如果我现在想将此方法与流或选项一起使用,如下所示: 我收到一条关于未经检查的转换和使用原始类型的警告,我更喜欢使用参数化类型。 日食: 类型安全:收集(Collector)方法属于原始类型Stream javac: 注意:GenericsT
主要内容:视图的优点MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中。行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。 数据库中只存放了视图的定义,并没有存放视图中的数据,这些数据都存放在定义视图查询所引用的真实表中。使用视图查询数据时,数据库会从真实表中取出对应的数据。因此,视图中的数据是依赖于真实表中的数据的。一旦真实表中
我认为这个问题本质上是关于可变性背景下的懒惰是什么。 在Scala编程(或文档)中,他们给出了如何在不可变和可变集合上使用视图的示例。在该节中,它们指出 视图并不复制这些元素,它只是提供对它们的引用。 我明白为什么我们会得到那个答案。但是transformer有什么懒惰的呢?我把懒惰理解为只在需要时才计算值(就像不可变集合的例子一样)。但是,中的值从不计算,它们只是对中的值的引用,即使在调用之后也
本文向大家介绍什么叫视图?游标是什么?相关面试题,主要包含被问及什么叫视图?游标是什么?时的应答技巧和注意事项,需要的朋友参考一下 答:视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。 游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元中的特