Java OCJP 考试重点:List 实现与效率

5星 · 超过95%的资源 需积分: 50 137 下载量 199 浏览量 更新于2024-07-28 6 收藏 8.87MB PDF 举报
"这是一份OCJP(Oracle Certified Professional, Java SE 6 Programmer)的考试题库,包含多个选择题,主要涉及Java编程语言的基础知识和高级特性,如集合框架的使用、泛型以及方法的泛型化。" 在题库中,我们可以看到两个问题,它们都是关于Java集合框架的选择题。 第一个问题是: 问题1:给定一个预泛型实现的方法,要求使用泛型并避免未检查警告,需要做哪些修改?(选择三项) 选项包括: A. 删除第14行 B. 将第14行替换为"int i = iter.next();" C. 将第13行替换为"for(int i : intList) {" D. 将第13行替换为"for(Iterator iter : intList) {" E. 将方法声明替换为"sum(List<int> intList)" F. 将方法声明替换为"sum(List<Integer> intList)" 正确答案是ACF。这表明要使用泛型,应该将方法声明更改为使用泛型类型`Integer`(选项F),删除强制类型转换以避免未检查警告(选项A),并将循环改进为使用增强的for循环(选项C)。选项B不正确,因为虽然它消除了类型转换,但仍然没有使用泛型。选项D和E是无效的,因为Java中不允许基本类型作为参数在泛型中使用。 第二个问题是: 问题2:程序员有一个算法,需要一个提供`add(0, object)`高效实现的`java.util.List`,但不需要快速的随机访问。以下哪个列表实现满足这些需求? 选项是: A. `java.util.Queue` B. `java.util.ArrayList` C. `java.util.LinearList`(这个类在标准Java库中不存在) D. `java.util.LinkedList` 正确答案是D。`LinkedList`实现了`List`接口,它允许在列表的任何位置进行高效的插入操作,特别是`add(0, object)`,即在开头添加元素。然而,由于它基于链表结构,所以不适合快速的随机访问。相比之下,`ArrayList`使用数组实现,对随机访问支持良好,但插入操作在中间位置效率较低。`Queue`通常不保证在特定位置插入,而`LinearList`不是Java标准库的一部分。 这两个问题突出了Java集合框架中不同数据结构的特性和适用场景,对于理解如何根据具体需求选择合适的数据结构非常重要。在实际编程中,选择正确的数据结构可以显著影响代码的性能和可维护性。