java集合面试试题及答案.doc
java集合面试试题及答案
一、单项选择题(每题2分,共10题)
1.以下哪种集合类是线程安全的?()
A.ArrayList
B.Vector
C.LinkedList
D.HashSet
答案:B
2.在Java中,Set集合的特点是()。
A.有序且可重复
B.无序且不可重复
C.有序且不可重复
D.无序且可重复
答案:B
3.HashMap的底层数据结构是()。
A.数组+链表
B.数组+链表+红黑树
C.链表+红黑树
D.仅数组
答案:B
4.ArrayList的默认初始容量是()。
A.0
B.10
C.16
D.32
答案:B
5.要在Map中存储键值对,以下哪种方法是正确的?()
A.put(key,value)
B.add(key,value)
C.insert(key,value)
D.append(key,value)
答案:A
6.对于LinkedList,以下说法正确的是()。
A.查找元素速度快
B.插入和删除元素速度慢
C.适合随机访问
D.插入和删除元素速度快
答案:D
7.HashSet中元素是如何存储的?()
A.根据元素的插入顺序
B.根据元素的哈希值
C.根据元素的大小顺序
D.随机存储
答案:B
8.以下哪个集合类可以存储键值对并且按照插入顺序排序?()
A.HashMap
B.LinkedHashMap
C.TreeMap
D.Hashtable
答案:B
9.要遍历ArrayList,以下哪种方式效率最高?()
A.普通for循环
B.增强for循环
C.迭代器
D.都一样
答案:A
10.下列关于TreeSet的说法正确的是()。
A.存储的元素可以是无序的
B.底层基于红黑树实现
C.允许存储null元素
D.不是Set的一种实现
答案:B
二、多项选择题(每题2分,共10题)
1.以下哪些是Java集合框架中的接口?()
A.List
B.Set
C.Map
D.Queue
答案:ABCD
2.关于ArrayList,以下说法正确的是()。
A.可以动态增长
B.是线程安全的
C.支持随机访问
D.内部基于数组实现
答案:ACD
3.以下哪些集合类实现了List接口?()
A.ArrayList
B.LinkedList
C.Vector
D.HashSet
答案:ABC
4.对于HashMap,以下哪些操作会影响其性能?()
A.频繁的插入操作
B.频繁的删除操作
C.大量的哈希冲突
D.键值对数量很少
答案:ABC
5.在Java集合中,以下哪些操作可以用于遍历元素?()
A.普通for循环
B.增强for循环
C.迭代器
D.递归
答案:ABC
6.以下关于TreeMap的说法正确的是()。
A.按照键的自然顺序排序
B.键必须实现Comparable接口
C.是线程安全的
D.可以存储null键
答案:AB
7.以下哪些是Set集合的实现类?()
A.HashSet
B.TreeSet
C.LinkedHashSet
D.ArrayList
答案:ABC
8.要将一个集合转换为数组,可以使用以下哪些方法?()
A.toArray()
B.toArray(T[]a)
C.getArray()
D.array()
答案:AB
9.以下关于Vector的说法正确的是()。
A.是线程安全的
B.初始容量为10
C.扩容时每次增加一倍容量
D.性能比ArrayList好
答案:ABC
10.以下哪些操作可以在Map中进行?()
A.根据键获取值
B.添加键值对
C.删除键值对
D.修改键值对中的值
答案:ABCD
三、判断题(每题2分,共10题)
1.ArrayList是线程安全的。()
答案:错误
2.HashSet中可以存储相同的元素。()
答案:错误
3.HashMap的键可以为null。()