栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java容器的面试题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java容器的面试题

1.Java容器分为 Colletion 和 Map 两大类,其下 又有很多子类

 Collection

List :ArrayList、linkedList、Vector、Stack

Set: HashSet、linkedHashSet 、TreeSet

map:

1.HashMap: linkedHashMap

2.TreeMap

3.ConcurrentHashMap

4.Hashtabl

2.collection 和 Collections 有什么区别?

  collection 是一个集合接口,它提供了对集合对象接口进行基本操作的通用的接口方法,所有集合都是他的子类,比如:List   Set等。

collections是一个包装类、包含了很多静态方法、不能被实例化。就像一个工具类,比如:提供了排序方法:collections.sort(list )

3.List、Map、Set之间的区别是什么?

List、Map、Set 的区别主要体现在两个方面:元素是否有序、是否允许元素重复(三者之间的区别)

4.HashMap和Hashtable有什么区别?

存储:HashMap运行时可以为null,而Hashtable不能

线程安全:Hashtable是线程安全的,而HashMap是非线程安全的

推荐使用:在 Hashtable 的类注释可以看到,Hashtable 是保留类不建议使用,推荐在单线程环境下使用 HashMap 替代,如果需要多线程使用则用 ConcurrentHashMap 替代。

5.说一下HashMap的实现原理

HashMap是基于Hash算法实现的,通过Put(K、V)存储、get(key)来获取。当传入key时、HashMap会根据key.hashCode()计算出hash值,根据hash值将value保存在bucket里。当计算出的hash值同时,我们称之为hash冲突。HashMap的做法是用链表和红黑叔存储相同hash值的value。当hash冲突的个数比较少时,使用链表否则使用红黑树。

6.说一下HashMap的实现原理

HashSet 是基于 HashMap 实现的,HashSet 底层使用 HashMap 来保存所有元素,因此 HashSet 的实现比较简单,相关 HashSet 的操作,基本上都是直接调用底层 HashMap 的相关方法来完成,HashSet 不允许重复的值。

7.ArrayList和linkedList的区别

数据实现结构:ArrayList是动态数组的数据实现,而linked是双向链表的数据结构实现

随机访问效率:ArrayList比LikedList在随机访问的时候效率高,因为linkedList是线性的数据存储方式,所以需要移动指针从前往后依次查找。

增加删除效率:在非首尾的增加和删除操作,linkedList要比ArrayList效率要高,因为ArrayList增删操作要影响数组内的其他数据下标。

综合来说,在需要频繁读取集合中的元素时,更推荐使用ArrayList,而在插入和删除操作比较多时,更推荐使用linked List。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/424414.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号