java集合必会面试题目及答案_第1页
java集合必会面试题目及答案_第2页
java集合必会面试题目及答案_第3页
java集合必会面试题目及答案_第4页
java集合必会面试题目及答案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

java集合必会面试题目及答案

一、单项选择题(每题2分,共10题)1.以下哪个集合是有序且可重复的?()A.SetB.ListC.Map答案:B2.ArrayList的底层数据结构是()。A.链表B.数组C.哈希表答案:B3.下列哪种集合线程安全?()A.ArrayListB.VectorC.LinkedList答案:B4.HashSet在存储元素时主要依靠()。A.元素的顺序B.元素的哈希值C.元素的大小答案:B5.要存储键值对数据,应该使用()。A.ListB.SetC.Map答案:C6.向TreeSet中添加自定义对象时,需要()。A.重写equals方法B.重写hashCode方法C.重写compareTo方法答案:C7.以下关于LinkedList说法错误的是()。A.插入删除效率高B.随机访问效率低C.底层是数组结构答案:C8.HashMap在JDK8中,当链表长度超过()时会转换为红黑树。A.6B.7C.8答案:C9.以下集合类中,()初始容量为16。A.ArrayListB.HashMapC.HashSet答案:B10.对于一个空的ArrayList,调用get(0)会()。A.返回nullB.抛出IndexOutOfBoundsExceptionC.返回一个默认值答案:B二、多项选择题(每题2分,共10题)1.以下哪些是Java集合框架中的接口?()A.ListB.SetC.QueueD.Map答案:ABCD2.关于HashSet,正确的是()。A.不允许重复元素B.元素无序C.底层基于哈希表D.允许null元素答案:ABCD3.以下关于ArrayList和LinkedList的区别正确的是()。A.ArrayList随机访问快B.LinkedList插入删除快C.ArrayList占用空间连续D.LinkedList占用空间不连续答案:ABCD4.对于Map接口,以下说法正确的是()。A.包含键值对B.键不能重复C.值可以重复D.有多种实现类答案:ABCD5.下列哪些操作会导致HashMap重新哈希()。A.扩容B.修改键对象的哈希值相关属性C.清除所有元素再重新添加D.把元素从一个桶移动到另一个桶答案:AB6.在Java集合中,以下哪些类是线程安全的()。A.VectorB.HashtableC.ConcurrentHashMapD.CopyOnWriteArrayList答案:ABCD7.关于TreeSet的特点,以下正确的是()。A.有序B.基于红黑树实现C.元素唯一D.可以自定义排序规则答案:ABCD8.以下关于Collections工具类,正确的是()。A.可以对集合进行排序B.可以对集合进行反转C.可以对集合进行查找D.可以对集合进行填充答案:ABCD9.以下属于List接口的实现类有()。A.ArrayListB.LinkedListC.VectorD.Stack答案:ABCD10.对于HashSet,如果两个对象通过()方法返回true,则视为相同元素。A.equalsB.hashCodeC.compareToD.toString答案:AB三、判断题(每题2分,共10题)1.HashSet中存储的元素是有序的。()答案:错2.HashMap的键可以为null。()答案:对3.LinkedList可以作为队列使用。()答案:对4.TreeMap是按照键的自然顺序或者自定义顺序排序的。()答案:对5.ArrayList的容量是固定不变的。()答案:错6.向HashSet中添加元素时,会先比较哈希值,再比较equals方法。()答案:对7.Map接口没有继承Collection接口。()答案:对8.Vector和ArrayList的区别主要在于线程安全性。()答案:对9.所有的集合类都在java.util包下。()答案:错10.对于一个不可变的List,可以使用Collections.unmodifiableList方法创建。()答案:对四、简答题(每题5分,共4题)1.简述ArrayList和LinkedList在内存使用方面的区别。答案:ArrayList基于数组,内存空间连续,需要预先分配一定容量,扩容时可能造成空间浪费。LinkedList基于链表,节点分散存储,不需要连续空间,每个节点除了存储数据还要存储指向下一节点的指针,内存开销稍大。2.说明HashSet如何保证元素唯一性。答案:HashSet通过元素的哈希值确定存储位置,先计算元素哈希值,若哈希值对应的桶为空则直接存入;若不为空,则用equals方法判断是否相同,相同则不存,不同则以链表或红黑树形式存储在桶内。3.简单介绍下HashMap的工作原理。答案:HashMap基于哈希表实现。通过对键计算哈希值确定存储位置(桶),如果发生哈希冲突(多个键哈希值相同),在JDK8之前采用链表解决,JDK8开始,链表长度超过8时转换为红黑树。4.简述TreeMap的排序方式。答案:TreeMap可以根据键的自然顺序(键实现Comparable接口)或者通过自定义的比较器(构造时传入Comparator)来进行排序。五、讨论题(每题5分,共4题)1.在多线程环境下,如何安全地使用集合类?答案:可使用线程安全的集合类如Vector、Hashtable、ConcurrentHashMap、CopyOnWriteArrayList等,或者使用Collections.synchronized方法对非线程安全集合进行包装后使用。2.如果要对一个自定义对象的集合进行排序,有哪些方法?答案:可以让对象实现Comparable接口定义自然排序,或者定义一个Comparator比较器,然后使用Collections.sort方法或者使用TreeSet、TreeMap时传入比较器。3.分析HashMap中哈希冲突产生的原因以及解决办法。答案:原因是不同键可能计算出相同哈希值。解决办法是JDK8之前用链表,JDK8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论