13.3.1 视图与包装器 视图:从集合类通过映射关系获取另一个集合类,而非直接创建新的集合类。优点是不占用额外空间,缺点是非真实集合,看上去不太直观;另外,消耗了一定的栈
13.3.1 视图与包装器
视图:从集合类通过映射关系获取另一个集合类,而非直接创建新的集合类。优点是不占用额外空间,缺点是非真实集合,看上去不太直观;另外,消耗了一定的栈存储空间,不能做太多层的映射,会超出栈内存。
1 轻量级包装器
典型例子1:数组转集合 Arrays.asList(xx);
注意,这里的 ArrayList 不是 java.util.ArrayList,而是静态内部类 ArrayList
这个类实际上都是对数组的映射,是 java.util.ArrayList 的简化版本。特别注意的是,这个类不能增删元素!
由于上述截图中没有重写 add/remove 方法,最终调用这两个类会按照父类处理抛出异常。
典型示例2:Collecitons.singleton(object), 可创建一个只有一个对象的 Set 视图映射
小总结: