驯服Tiger - 集合框架 - 编程入门网
uals()、deepHashCode() 和 deepToString() 方法的工作方式 类似于它们那些非深度(non-deep)的同类,但它们不仅会停下手来处理顶级数 组的每个元素,还会更深入地研究生成结果的多维数组。
虽然不是一个新方法,但 asList() 方法在 5.0 的工作方式有所不同。以前 ,这个方法接受 Object[] 数组作为它的参数。现在,因为 Tiger 的可变参数 列表特性,任何用逗号分隔的列表都可以接受,如清单 3 所示: 清单 3. Arrays.asList 的区别
如果传递给命令行的元素不同,清单 3 中的两个示例没必要产生同样的结果 ,但是它确实展示了 Tiger 在语言级别上的变化如何扩展了 Arrays 原有的 asList() 方法。 集合 Arrays 用于处理不同集合的辅助类是 Collections 类。同样,这个类也不 是一个新类,但是该类的特性已经针对 5.0 作了扩展。现在有 13 个新方法: checkedCollection() checkedSet() checkedSortedSet() checkedList() checkedMap() checkedSortedMap() emptySet() emptyList() emptyMap() reverseOrder() frequency() disjoint() addAll() 驯服Tiger - 集合框架(3)时间:2010-12-16 John Zukowski其中 6 个 checked*() 方法工作起来与 6 个 synchronized*() 和 unmodifiable*() 方法类似。使用 synchronized*() 方法时,要向该方法提供 一个集合,然后该方法将返回同一个集合的同步的、线程安全的版本。使用 unmodifiable*() 方法时,得到的是指定集合的只读视图。除了集合参数之外, checked*() 操作可能还要求第二个或者第三个参数(如清单 4 所示),并返回 该集合的动态的类型安全视图: 清单 4. 检测后的集合
使用 Java 5.0 平台,您可能以为:由于将集合声明为通用集合 (Collection<String> c = new HashSet<String>();),所以不 需要进行运行时检测了。但是如果向工具方法传递 String 版本的 HashSet,而 工具方法只能处理非通用的 Set,那么该方法可能就会错误地向集合添加一个非 String 元素。通过临时修改程序,用 Collection<String> c = Collections.checkedCollection(new HashSet<String>(), String.class); 添加运行时检查,您可以迅速发现问题的根源。 三个 empty*() 方法 —— emptySet()、emptyList() 和 emptyMap() —— 生成空的不可改变的集合。虽然也可以用 new ArraySet() 这样的方法创建空集 合,但是还要通过某个 unmodifiable*() 方法才能确保新集合是不可改变的。 empty 方法用更理想的方式提供了空的只读集合 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |