HashSet与HashMap的区别

面试中经常被问到HashMap与HashSet的区别。于是本渣静下心来总结了一下HashSet与HashMap的区别。

  先了解一下HashMap跟HashSet

HashSet:

  HashSet实现了Set接口,它不允许集合中出现重复元素。当我们提到HashSet时,第一件事就是在将对象存储在

HashSet之前,要确保重写hashCode()方法和equals()方法,这样才能比较对象的值是否相等,确保集合中没有

储存相同的对象。如果不重写上述两个方法,那么将使用下面方法默认实现:

 public boolean add(Object obj)方法用在Set添加元素时,如果元素值重复时返回 "false",如果添加成功则返回"true"

HashMap:

  HashMap实现了Map接口,Map接口对键值对进行映射。Map中不允许出现重复的键(Key)。Map接口有两个基本的实现

TreeMap和HashMap。TreeMap保存了对象的排列次序,而HashMap不能。HashMap可以有空的键值对(Key(null)-Value(null))

HashMap是非线程安全的(非Synchronize),要想实现线程安全,那么需要调用collections类的静态方法synchronizeMap()实现。

public Object put(Object Key,Object value)方法用来将元素添加到map中。

HashSet与HashMap的区别:

HashMap HashSet
实现了Map接口 实现Set接口
存储键值对 仅存储对象
调用put()向map中添加元素 调用add()方法向Set中添加元素
HashMap使用键(Key)计算Hashcode

HashSet使用成员对象来计算hashcode值,

对于两个对象来说hashcode可能相同,

所以equals()方法用来判断对象的相等性,

如果两个对象不同的话,那么返回false

HashMap相对于HashSet较快,因为它是使用唯一的键获取对象 HashSet较HashMap来说比较慢

转载自https://www.cnblogs.com/codercui/p/6841730.html

转载于:https://www.cnblogs.com/technologykai/articles/9041716.html

面试真题------hashmap与hashset相关推荐

  1. 入职阿里啦!字节大牛耗时八个月又一力作,Java面试真题精选

    一道面试题 让我们开门见山,直面主题:Dubbo 服务里面有个服务端,还有个消费端你知道吧? 服务端和消费端都各有一个线程池你知道吧? 那么面试题来了:一般情况下,服务提供者比服务消费者多吧.一个服务 ...

  2. 把最新JAVA面试真题(阿里/京东/菜鸟)整理出来,却被自己菜哭了

    前言 2020终于迎来了最后的两个月,这一年,全世界都不安定,被疫情包围,渐渐治愈和免疫,国内虽然看着和往常没有多大的区别,但对于经济的冲击,不知道又倒退了多少年?大大小小的公司面临倒闭或已破产,对于 ...

  3. 2023华为面试真题

    [华为]面试真题: 面试前需要准备: 1. Java 八股文:了解常考的题型和回答思路: 2. 算法:刷 100-200 道题,记住刷题最重要的是要理解其思想,不要死记硬背,碰上原题很难,但 大多数的 ...

  4. 2021百度Android岗面试真题收录解析,搞懂这些直接来阿里入职

    前言 这是一篇软文.但是绝对不是鸡汤:为啥不是呢?因为我文笔太差-偶尔矫情发发牢骚(勿喷) 说说程序猿行业 现在社会上给IT行业贴上了几个标签:高薪.高危.高大上.秃顶(哈哈).这些标签我相比大家都比 ...

  5. 2021大厂Java面试真题(六)

    2021大厂Java面试真题(六) * * 2021 [华为]面试真题* * : * * 1.Java 常用集合及特点?* * List:ArrayList.LinkedList.Vector.Sta ...

  6. 百度统计 java 实现思路_2019社招阿里、腾讯、蚂蚁金服「四面」Java面试真题分享...

    在过去很长一段时间内,国内互联网一直处于三足鼎立状态,BAT即百度.阿里巴巴.腾讯.而在最新的互联网企业价值榜上,百度却被蚂蚁金服挤出前三的位置. 能够进一线互联网公司,是大部分程序员奋斗的目标,有很 ...

  7. android广告页白屏_年度整理!2056页《大厂安卓岗面试真题解析合集》火爆全网...

    前言 2020年还有最后一个月就结束了,时间一眨眼就过去了.今年面试有没有被面试官虐呢,明年跳槽想跳去哪个大厂呢,这是个问题.说实话,今年我面试也被虐了,为了明年能找到一份心怡的工作,特地的从朋友那里 ...

  8. “烤面经了“~2022最新大厂Java面试真题总结,可带劲了

    前言 疫情到现在已经持续有3年的时间了,由于疫情的影响,无数行业都受到了影响,互联网寒冬下,许多程序员被裁,大环境格外困难. 我发现一个奇怪的现象:那些跳槽的人,总是从一个坑,跳进令一个坑中.毕竟一年 ...

  9. 2.牛批了 Android 2021中高级面试题 一线大厂和二线大厂面试真题精选 (京东 附答案)第二套 22k+

    笔者是面霸,面试500+场       当过考官:面过别人500+场     去过500强,也呆过初创公司. 斩获腾讯.美团,字节跳动,蚂蚁金服,华为.OPPO,offer!我有一套速通大厂技巧分享给 ...

最新文章

  1. 区块链入门之基础知识
  2. 输入http://localhost/,apache出现You don't have permission to access/on this server.的提示,如何解决?...
  3. 从全球最大光伏展看中国光伏行业:火爆的背后是什么?
  4. Date类的构造方法和成员方法
  5. P5488-差分与前缀和【NTT,生成函数】
  6. LeetCode 2076. 处理含限制条件的好友请求(并查集)
  7. session.merge 缓存不更新_如何保证缓存与数据库双写时的数据一致性?
  8. 处理移动端pdf展示问题
  9. 除非 Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,否则无法启动网站。IIS 7...
  10. form表单属性名相同java_form表单提交 list对象给Java 后台结合
  11. 一步一步写算法(之内存)
  12. python赋值标志_Python中的赋值、引用和深浅拷贝
  13. 拓端tecdat|R语言广义相加(加性)模型(GAMs)与光滑函数可视化
  14. 第151天:网页中插入百度地图方法(不需要密钥)
  15. Excel-制作简单的环形柱状图
  16. mysql 分页 pageindex_根据当前页号(pageIndex)和页大小(pageSize)获取分页数据
  17. 3❤️Jenkins从零到壹❤️ :常用功能大全(JAVA 小虚竹)
  18. English Pod 听力学习之路 C41 - C68
  19. 30个很棒的jQuery幻灯片放映插件
  20. 计算机视觉课程设计:基于SSD、Dlib多进程目标检测的对比研究

热门文章

  1. ionic iphone下的问题
  2. 只有在配置文件或 Page 指令中将 enableSessionState”的异常解决办法
  3. ASP.NET的权限问题
  4. 区块链溯源系统架构---区块链工作笔记002
  5. C/C++网络编程工作笔记0003---客户服务端程序说明
  6. SpringCloud学习笔记001-SpringCloud_001_SpringCloud简介_单体架构_微服务架构_服务注册与发现_微服务调用关系
  7. 2015年4月7号的日志
  8. 走进COM组件系列(三)
  9. shell sed 替代1
  10. linux c++模拟简易网络爬虫