如何完美解答面试问题——HashMap和HashSet的区别

   日期:2020-09-09     浏览:104    评论:0    
核心提示: 大家好,我是孤焰。今天要谈一谈在面试过程中几乎被每个面试官都会提到的一个问题——HashMap和HashSet的区别是什么? 由于我也是刚刚学习编程的小白,所以此篇博文将参考了多篇博文,最后总结而成。1.什么是HashMap?1.1什么是HashMap? HashMap是存储Key-Value键值对的集合,每个键值对也叫做Entry,这些Entry分散存储在一个数组中,这个数组可以称是HashMap的主干。 HashMap中的每一个元素的初始值都是NULL,且默认数组长度是16HashM.

 大家好,我是孤焰。今天要谈一谈在面试过程中几乎被每个面试官都会提到的一个问题——HashMap和HashSet的区别是什么
 由于我也是刚刚学习编程的小白,所以此篇博文将参考了多篇博文,最后总结而成。

1.什么是HashMap?

1.1什么是HashMap?

 HashMap是存储Key-Value键值对的集合,每个键值对也叫做Entry,这些Entry分散存储在一个数组中,这个数组可以称是HashMap的主干。

 HashMap中的每一个元素的初始值都是NULL,且默认数组长度是16


HashMap有两个主要方法:GETPUT

V get(Object key) 方法:返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。

V put(K key, V value) 方法:向数组中添加键值对(Entry)。



1.2HashMap的特点有哪些?

HashMap具有以下4条特点:

  • HashMap是一个散列桶(数组和链表),它存储的内容是键值对(key-value)映射
  • HashMap采用了数组和链表的数据结构(在JDK1.8之后采用数组和红黑树),能在查询和修改方便继承了数组的线性查找和链表的寻址修改
  • HashMap是非synchronized,所以HashMap很快,HashMap是非线程安全的
  • HashMap可以接受null键和值,而Hashtable则不能(原因就是equlas()方法需要对象,因为HashMap是后出的API经过处理才可以)

2.什么是HashSet?

2.1什么是HashSet?

 HashSet底层基于HashMap实现(不信的话可以看源码),但HashSet存的只是对象,HashMap存的是键值对。

HashSet不允许集合中出现重复元素,在使用HashSet存储对象之前,要确保重写hashCode()方法和equals()方法

2.2HashSet的特点有哪些?

HashSet具有以下4条特点:

  • 无序性(HashMap也有这条特点)
  • 唯一性(允许使用null)
  • 本质上来讲就是hashmap
  • 需要重写hashcode()方法和equals()方法

3.HashMap与HashSet的区别?

HashMap HashSet
HashMap实现了Map接口 HashSet实现了Set接口
HashMap存储键值对 HashSet仅仅存储对象
使用put()方法将键值对放入Map中 使用add()方法将对象放入Set中
HashMap中使用键对象来计算hashcode值 HashSet中使用成员对象来计算hashcode值,对于两个对象来说hashcode可能相同,所以equalse()方法用来判断对象的相等性
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服