OCJP 1Z0-851题库:升级到泛型版本,避免警告并优化List使用

5星 · 超过95%的资源 需积分: 10 54 下载量 35 浏览量 更新于2024-07-20 收藏 2.77MB PDF 举报
OCJP 1ZO-851 题库是针对 Oracle Certified Professional - Java Standard Edition Programmer (1Z0-851) 考试的学习资料。该考试主要测试考生对Java Standard Edition编程的专业技能,包括语言特性、集合框架、异常处理、多线程、网络编程等内容。在提供的题目中,涉及到了泛型(Generics)的使用,这是Java SE 5.0及以上版本引入的重要特性,用于提高代码的类型安全性。 第一个问题涉及到一个非泛型方法`sum(List list)`,目的是计算列表中所有整数元素的总和。为了使这个方法支持泛型并消除编译时的 unchecked warning(未检查的警告),我们需要做以下三个改变: A. 删除线14:这行强制转换是不必要的,因为泛型会自动确保类型安全。 B. 将线14替换为"int i = iter.next();":这个选项也不正确,因为泛型不需要显式类型转换,会自动推断。 C. 将线13替换为"for (int i : intList) {":这是正确的,使用迭代器遍历泛型List,无需强转类型,保证了类型安全。 D. 同样,将线13替换为"for (Iterator iter : intList) {",虽然语法正确,但Java不推荐这种写法,因为它没有明确指定元素类型。 E. 将方法声明改为"sum(List<int> intList)":这种写法错误,因为Java不允许在类型参数前加上类型,应直接写成"sum(List<Integer> intList)"。 F. 将方法声明改为"sum(List<Integer> intList)":这是正确的,明确指定了泛型参数为Integer类型,避免了运行时异常。 第二个问题是关于一个程序算法需要一个`java.util.List`,它需要支持在索引0处添加对象,但并不需要快速随机访问。在这种情况下,合适的集合实现可能是`LinkedList`,因为 LinkedList 提供了`add(int index, E element)`方法来添加元素到指定位置,而它不是随机访问的理想选择,如`ArrayList`或`Vector`。 对于1Z0-851考试,理解泛型的使用和不同集合框架的特点是非常关键的,特别是如何编写类型安全的代码,以及根据算法需求选择合适的数据结构。掌握这些知识点可以帮助考生更好地准备和通过考试。