Oracle JAVA OCPJP V6:通过泛型改进与List操作

需积分: 9 62 下载量 93 浏览量 更新于2024-07-24 收藏 3.35MB PDF 举报
Oracle JAVA OCPJP V6 是针对Oracle Certified Professional, Java Platform, Enterprise Edition 6 (OCPJP 6)认证的考试准备材料,该认证旨在测试Java开发者在企业级Java平台上的技能。本资源提供了两道题目及其解答,涉及泛型和集合框架的使用。 第一个问题(Question NO:1)关注于如何将一个预泛型的`sum`方法转换为支持泛型以消除编译时的 unchecked warning(未检查异常警告)。原始代码使用了`List`接口,但没有指定类型参数。要实现泛型并避免警告,可以做以下改动: A. 删除第14行,这会导致类型丢失,因为`Integer`被强转后,泛型信息丢失。 B. 将第14行替换为`int i = iter.next();`,这同样保留了类型信息,但原始意图是确保`iter.next()`返回的是`Integer`对象,而非泛型类型。 C. 将第13行替换为`for (int i : intList) {`,这样通过泛型指定`intList`的元素类型为`int`,使编译器能够推断出正确类型。 D. 选项C的变体,但是这里`intList`应使用尖括号`<Integer>`来明确表示列表元素为`Integer`类型。 正确的答案是:A、C、F。A和B选项可能导致类型安全问题,而D选项虽然类型明确,但不是使用泛型的正确语法。F选项通过将方法声明改为`sum(List<Integer> intList)`,明确指定了`List`的类型参数为`Integer`,是最合适的。 第二个问题(Question NO:2)涉及Java集合框架的选择,算法需要一个支持在索引0处添加元素但不需要快速随机访问的列表。在这种情况下,适合的选项是: A. `java.util.Queue` - 它是先进先出(FIFO)的数据结构,不支持随机访问。 B. `java.util.ArrayList` - 支持随机访问,不符合题目的要求。 C. `java.util.LinearList` - 实际上是LinkedList的旧称,不常见且可能不提供所需的功能。 D. `java.util.LinkedList` - 有序链表,添加元素在头部或尾部(`addFirst`和`addLast`),虽然不是原生的索引0添加,但可以通过`add(0, object)`实现添加,并且不支持快速随机访问。 因此,答案是D,`java.util.LinkedList`满足题目中的需求。 这两个题目展示了在OCPJP V6考试中可能遇到的关于泛型和Java集合框架的典型问题,理解并掌握这些概念对于通过考试至关重要。