首页/ 学科题库/ java/ JAVA集合框架专题测试
java 模拟试卷

JAVA集合框架专题测试

20 题 60 分钟 难度:★★
知识点模块题目数量题目编号
List接口与实现4道Q001-Q004,Q033
Set接口与实现3道Q005-Q007
Map接口与实现3道Q009-Q010,Q012
泛型与集合3道Q018-Q019
并发集合4道Q020-Q021,Q024-Q025
集合性能分析3道Q026,Q032,Q036

试卷习题(20 题)

参考答案在文末
判断题
1
判断题

使用Collections.synchronizedList(new ArrayList<>())创建的线程安全List,在遍历时不需要额外的同步措施。

A

对

B

错

2
判断题

Vector是线程安全的List实现,与ArrayList相比,它的方法大多使用synchronized关键字修饰,因此在多线程环境下应该优先选择Vector。

A

对

B

错

3
判断题

TreeSet可以存储任意类型的对象,只需要这些对象正确实现了equals()方法即可。

A

对

B

错

4
判断题

遍历Map时,使用entrySet()方法比使用keySet()方法更高效,因为entrySet()不需要额外的get操作来获取值。

A

对

B

错

5
判断题

Java中可以创建泛型数组,例如 new List[10] 是合法的语法。

A

对

B

错

单选题
6
单选题

关于ArrayList和LinkedList的区别,下列说法正确的是:

A

ArrayList基于链表实现,LinkedList基于数组实现

B

ArrayList随机访问效率高,LinkedList插入删除效率高

C

ArrayList和LinkedList都实现了RandomAccess接口

D

LinkedList比ArrayList更节省内存空间

7
单选题

在使用迭代器遍历ArrayList时,如果直接调用集合的add()方法添加元素,会抛出什么异常?

A

NullPointerException

B

ClassCastException

C

ConcurrentModificationException

D

IndexOutOfBoundsException

8
单选题

当向HashSet中添加元素时,判断元素是否重复的依据是什么?

A

只比较hashCode()的返回值

B

只比较equals()方法的返回值

C

先比较hashCode(),若相同再比较equals()

D

先比较equals(),若相同再比较hashCode()

9
单选题

以下哪个集合的contains(Object o)方法效率最低?

A

HashSet

B

ArrayList

C

TreeSet

D

LinkedList

10
单选题

以下关于HashMap和TreeMap的说法,正确的是:

A

HashMap和TreeMap都是线程安全的

B

TreeMap可以根据键进行排序,HashMap不保证顺序

C

HashMap的查询效率是O(n),TreeMap的查询效率是O(log n)

D

HashMap和TreeMap都允许null键和null值

11
单选题

当需要存储大量元素到ArrayList时,以下哪种方式性能最好?

A

直接使用new ArrayList<>()创建,然后逐个添加元素

B

使用new ArrayList<>(expectedSize)创建,预估容量

C

先添加到LinkedList,再转换为ArrayList

D

使用Collections.addAll()方法

12
单选题

Java 8中ConcurrentHashMap的线程安全机制是:

A

使用synchronized关键字锁住整个Map

B

使用分段锁(Segment)

C

使用CAS + synchronized锁住链表头节点或红黑树根节点

D

使用ReentrantLock锁住每个Node

13
单选题

以下代码能否编译通过?

Java
List<String> strings = new ArrayList<>();
strings.add("hello");
strings.add(123);
A

能编译通过,运行时抛出ClassCastException

B

能编译通过,运行时正常执行

C

不能编译通过,编译错误

D

不能编译通过,编译警告

多选题
14
多选题

关于List接口的特点,以下描述正确的有哪些?

A

List集合中的元素是有序的

B

List集合中的元素可以重复

C

List集合可以通过索引访问元素

D

List集合不允许存储null值

15
多选题

关于Java并发集合,以下说法正确的有哪些?

A

ConcurrentHashMap不允许null键和null值

B

CopyOnWriteArrayList适合读多写少的场景

C

BlockingQueue的take()方法在队列为空时会阻塞等待

D

ConcurrentLinkedQueue是无界线程安全队列,基于链表实现

16
多选题

在Java 8中,关于HashMap的说法正确的有哪些?

A

HashMap允许存储一个null键和多个null值

B

当链表长度超过8时,会自动转换为红黑树

C

HashMap的初始容量是16,负载因子默认是0.75

D

当元素数量达到容量×负载因子时,会自动扩容为原来的2倍

17
多选题

关于HashSet、LinkedHashSet和TreeSet的比较,下列说法正确的有哪些?

A

HashSet不保证元素顺序,LinkedHashSet保持插入顺序

B

TreeSet可以对元素进行排序

C

三者都不允许存储重复元素

D

HashSet的插入和查询效率是O(1),TreeSet的插入和查询效率是O(log n)

填空题
18
填空题

遍历Map集合的常用方式有三种:使用entrySet()方法获取键值对集合;使用方法获取键的集合;使用方法获取值的集合。

19
填空题

Java中List接口的三个主要实现类分别是(基于动态数组)、(基于双向链表)和(线程安全的动态数组)。

简答题
20
简答题

请简述ConcurrentHashMap和Hashtable的区别,为什么ConcurrentHashMap性能更好?

参考答案
1.错误 2.错误 3.错误 4.正确 5.错误 6.B 7.C 8.C 9.D 10.B 11.B 12.C 13.C 14.A;B;C 15.A;B;C;D 16.A;B;C;D 17.A;B;C;D 18.keySet();values() 19.ArrayList;LinkedList;Vector 20.略
想在手机上在线作答这套卷子?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可限时作答并自动判分。
了解产品 App
← 上一套 JAVA运算符与流程控制专题测试 下一套 → JAVA面向对象基础专题测试