全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页

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
1
单选题

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

A

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

B

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

C

ArrayList和LinkedList都实现了RandomAccess接口

D

LinkedList比ArrayList更节省内存空间

2
多选题

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

A

List集合中的元素是有序的

B

List集合中的元素可以重复

C

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

D

List集合不允许存储null值

3
判断题

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

A

B

4
单选题

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

A

NullPointerException

B

ClassCastException

C

ConcurrentModificationException

D

IndexOutOfBoundsException

5
单选题

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

A

只比较hashCode()的返回值

B

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

C

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

D

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

6
多选题

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

A

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

B

TreeSet可以对元素进行排序

C

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

D

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

7
判断题

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

A

B

8
单选题

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

A

HashMap和TreeMap都是线程安全的

B

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

C

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

D

HashMap和TreeMap都允许null键和null值

9
多选题

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

A

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

B

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

C

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

D

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

10
填空题

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

11
判断题

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

A

B

12
单选题

以下代码能否编译通过?

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

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

B

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

C

不能编译通过,编译错误

D

不能编译通过,编译警告

13
单选题

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

A

使用synchronized关键字锁住整个Map

B

使用分段锁(Segment)

C

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

D

使用ReentrantLock锁住每个Node

14
多选题

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

A

ConcurrentHashMap不允许null键和null值

B

CopyOnWriteArrayList适合读多写少的场景

C

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

D

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

15
简答题

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

16
判断题

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

A

B

17
单选题

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

A

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

B

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

C

先添加到LinkedList,再转换为ArrayList

D

使用Collections.addAll()方法

18
判断题

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

A

B

19
填空题

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

20
单选题

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

A

HashSet

B

ArrayList

C

TreeSet

D

LinkedList

← 上一个试卷 JAVA运算符与流程控制专题测试
下一个试卷 → JAVA面向对象基础专题测试

📝 发现内容有误?点击此处直接编辑

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库