Java 集合框架选择题及答案解析

1. 给定如下Java代码,其中第()行代码有错误。

import java.util.*;
public class ListTest{
public static void main(String []args){
List pList=new ArrayList();
pList.add("A"); //第五行
pList.add("B"); //第六行
for(int i=0;i<pList.size();i++){ //第七行
String str=pList.get(i); //第八行
System.out.print(str);
}
}
}

A. 五 B. 六 C. 七 D. 八

答案:D

解析: 第八行代码String str=pList.get(i);存在错误。由于 pList 是一个 List 类型,而 get() 方法是 List 接口中定义的方法,它返回指定索引位置处的元素。因此,代码运行时会抛出 IndexOutOfBoundsException 异常。

2. 在Java中,LinkedList类和ArrayList类同属于集合框架类,下列( )选项中的方法是 LinkedList类有而ArrayList类没有的。

A. add(Object o) B. add(int index,Object o) C. remove(Object o) D. removeLast()

答案:D

解析: removeLast() 方法是 LinkedList 类特有的方法,用于从链表的尾部移除最后一个元素。而 ArrayList 类没有提供此方法。

3. 在java中,下列选项可以存储无序、不重复的数据的是()

A. ArrayList B. LinkedList C. HashMap D. Set

答案:D

解析: Set 接口代表一组无序且不重复的元素。而 ArrayListLinkedList 都是有序的列表,HashMap 是一个键值对映射。

4. 执行以下JAVA代码,正确的输出结果是()。

public class Test{
public static void main(String []args){
List<String> list = new ArrayList<String>();
list.add("JAVA");
list.add(".NET");
list.add("Android");
list.remove(1);
System.out.println(list.get(1));
}
}

A. JAVA B. .NET C. Android D. 空指针异常

答案:C

解析: list.remove(1) 将索引为 1 的元素(.NET)从列表中移除。 此时,列表中只剩下两个元素,索引为 0 的元素是 JAVA,索引为 1 的元素是 Android,因此输出结果为 Android

5. 编译运行下列JAVA代码,输出结果正确的是()。

import java.util.*;
public class ListTest{
public static void main(String []args){
List list = new ArrayList();
list.add('a');
list.add('b');
list.add('c');
list.remove(1);
Iterator it=list.iterator();
while(it.hasNext()){
String str = it.next();
System.out.print(str);
}
}
}

A. ab B. bc C. ac D. 编译错误

答案:A

解析: 代码中 list.remove(1) 将索引为 1 的元素 'b' 从列表中移除, 因此输出结果为 ab

6. 下面List与Set集合的区别说法不正确的是( )

A. List中的元素可重复,有序 B. Set集合中的元素不可重复,有序 C. List中的元素可以通过下标访问 D. Set集合中的元素不可重复,无序

答案:B

解析: Set 集合中的元素不可重复,但 无序

7. 下面关于集合的概念说法错误的是( )

A. 集合中可以存储不限数量的元素 B. 集合中可以存储不同类型的元素 C. 集合中可以存储基本数据类型 D. 集合中在仅可以存储引用数据类型

答案:C

解析: 集合只能存储 引用数据类型,不能直接存储基本数据类型。 需要使用包装类来存储基本数据类型。

分析下面的Java程序:

8. public static void main(String args[]) {

int num = 0;

while(num <= 2){

num++;

System.out.print(num);

}

}

输出结果是

A 13 B 12 C 023 D 123

答案:D

解析: 代码段中 while 循环的条件是 num <= 2, 循环体执行三次,分别输出 1, 2, 3

9. 在Java中,调用Math.random() 方法可能返回的结果是()。

A 132.34 B 0.342 C 29.34E10 D 1.0009

答案:B

解析: Math.random() 方法返回一个大于等于 0.0 且小于 1.0 的随机数。

10. 已知class A{ pubic static int v = 1; public void fn() },

class B extends A{pubic static int v = 2; public void fn() public void fn1()}

下列说法正确的是()

A 类B中的fn与类A中的fn冲突了,会报错 B 类B中的v和类A中的v冲突了,会报错 C A a =new B(); a.fn1()调用会报错 D A a = new B(); a.v的值是2;

答案:D

解析: class B 继承 class Aclass B 中的 v 覆盖了 class A 中的 v,但两者是不同的变量,不会冲突。 a.v 的值是 2,因为它指向的是 B 中的 v 变量。

Java 集合框架选择题及答案解析

原文地址: https://www.cveoy.top/t/topic/n6Ig 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录