当前位置: 首页 > news >正文

网站建设市场规模wordpress淘宝主题

网站建设市场规模,wordpress淘宝主题,如何编辑网站后台,wordpress 栏目不同模板前言 List、Set、HashMap作为Java中常用的集合#xff0c;需要深入认识其原理和特性。 本篇博客介绍常见的关于Java中Set集合的面试问题#xff0c;结合源码分析题目背后的知识点。 关于List的博客文章如下#xff1a; Java进阶#xff08;List#xff09;——面试时L… 前言 List、Set、HashMap作为Java中常用的集合需要深入认识其原理和特性。 本篇博客介绍常见的关于Java中Set集合的面试问题结合源码分析题目背后的知识点。 关于List的博客文章如下 Java进阶List——面试时List常见问题解读 结合源码分析 关于的Set的博客文章如下 Java进阶Set——面试时Set常见问题解读 结合源码分析 关于HaseMap的博客文章如下 Java进阶HashMap——面试时HashMap常见问题解读 结合源码分析Java进阶ConcurrentHashMap——面试时ConcurrentHashMap常见问题解读 结合源码分析 多线程CAS比较并交换 初识 其他相关的Set的文章如下 Java学数据结构3——树Tree B树 红黑树 Java标准库中的集合Set与映射Map 使用多个映射Map的案例 目录 前言引出1. 描述一下HashSet的底层原理构造方法add方法 2. map.put方法静态常量PRESENT3. map.remove key方法PRESENT进行比较4. HashSet的去重原理5. 如何选择HashSet 或 TreeSet6. 如何得到一个线程安全的Set集合总结 引出 1.特点无序去重非线程安全 2.底层HashMap的Key值实现的 3.map.put方法静态常量PRESENT新值替换旧值 4.map.remove key方法如果KEY不存在时则返回的是null如果KEY存在时返回的就是e.value即PRESENT返回true成功返回false不成功 5.去重原理先判断hash值再通过或者equals判断整体如果返回true则为重复元素 6.无序的则采用HashSet 有序的则采用TreeSet 7.线程安全的setCollections.synchronizedSet(new HashSet()); 1. 描述一下HashSet的底层原理 HashSet的特点无序去重非线程安全HashSet 底层是用HashMap的Key值实现的也有上面的3大特征 构造方法 无参和代参构造方法都会初始化这个HashMap 无参的构造方法调用了HashMap方法 有参的构造方法也是调用了HashMap方法 ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上 add方法 add方法中可以看出调用HashMap的put方法key为放入元素值为常量PRESENT 2. map.put方法静态常量PRESENT 既然hashset基于hashmap实现你说一下 hashset的add方法中为什么要在map.put的val上放上一个Object类型的静态常量PRESENT HashSet底层调用了map的put方法传入了存储的对象和PRESENT常量那我们进入put方法继续查看 put方法内调用了putVal方法PRESENT常量为形参value继续进入查看 if (e ! null) { // existing mapping for key//把旧数据存储到oldValueV oldValue e.value;//如果说存储的位置上已经有元素了if (!onlyIfAbsent || oldValue null)//新元素会替代旧元素 新KEY替代KEYe.value value;afterNodeAccess(e);//返回旧元素数据return oldValue;}modCount;if (size threshold)resize();afterNodeInsertion(evict);//如果说上面的if结构没有执行那么就说明这个位置上没有元素则新增成功返回nullreturn null;public boolean add(E e) {//上面的方法返回值决定了HashSet的add方法到底返回true还是falsereturn map.put(e, PRESENT)null;}此方法内部明确箭头标处的原理value就是PRESENT如果进入这个if结构则说明这个位置上已经存在该key则会用value替换之前的旧值然后返回旧值oldValue否则会返回null;至此我们可以看出此方法的返回值是PRESENT或者是null如果为PRESENT则说明KEY已存在则add方法就会返回false此处元素put还是成功的只是新值替换旧值返回null则add返回true此KEY不存在代表存储新的KEY-VALUE; 3. map.remove key方法PRESENT进行比较 既然hashset基于hashmap实现你说一下 hashset的remove方法中为什么要在map.remove key 完了之后要和PRESENT进行一个等值比较呢 从HashMap的remove方法中可以看出方法返回的是e.value或者null与add方法中的原理一起联想则会明白如果KEY不存在时则返回的是null如果KEY存在时返回的就是e.value即PRESENT所以在HashSet在判断此返回值PRESENT如果相等则返回true说明此KEY是存在的删除成功返回true如果返回值是null那么nullPRESENT则返回的肯定是false那么代表此KEY不存在删除自然不成功返回false public V remove(Object key) {NodeK,V e;//判断了一下如果removeNode删除得到的是null说明此KEY不存在方法返回nullreturn (e removeNode(hash(key), key, null, false, true)) null ?//否则返回e.value 就是 PRESENTnull : e.value;}public boolean remove(Object o) {//因为HashMap删除成功返回的是PRESENT PRESENT 则结果为true 代表删除成功//否则返回的是null 返回false 删除失败return map.remove(o)PRESENT;}4. HashSet的去重原理 HashMap中putVal方法中有这么一段代码判断去重原理在于hashcode的判断和equals方法的判断先判断hash值再通过或者equals判断整体如果返回true则为重复元素 5. 如何选择HashSet 或 TreeSet 无序的则采用HashSet 有序的则采用TreeSet 6. 如何得到一个线程安全的Set集合 Set datas Collections.synchronizedSet(new HashSet()); 总结 1.特点无序去重非线程安全 2.底层HashMap的Key值实现的 3.map.put方法静态常量PRESENT新值替换旧值 4.map.remove key方法如果KEY不存在时则返回的是null如果KEY存在时返回的就是e.value即PRESENT返回true成功返回false不成功 5.去重原理先判断hash值再通过或者equals判断整体如果返回true则为重复元素 6.无序的则采用HashSet 有序的则采用TreeSet 7.线程安全的setCollections.synchronizedSet(new HashSet());
http://www.w-s-a.com/news/436407/

相关文章:

  • 福建自己建设网站义乌市企推网络科技有限公司
  • 宁波优化网站哪家好织梦网站地图怎么做
  • 怎么在自己的网站加关键词烟台企业网站建设
  • 中山网站建设界面设计职业技能等级证书
  • 做网站首页多少钱免费版企业邮箱注册
  • ppp模式在网站建设的南昌专业做网站公司哪家好
  • 泰安网站建设制作电话号码百度sem竞价托管公司
  • 苏网站建设网页设计和网页美工
  • 跨境电商平台网站广州地铁站路线图
  • 吉林省交通建设集团有限公司网站企业网站推广的策略有哪些
  • 网站内链怎么做更好郑州网站建设哪家便宜
  • 建设大型购物网站运城哪里做网站
  • php企业网站通讯录管理系统做网站在线支付系统多少钱?
  • 怎么区分用vs和dw做的网站贝贝网网站开发背景
  • 无锡网站建设制作建设信息网查询
  • 彩票系统网站开发建设人力资源网官网
  • 有专门下载地图做方案的网站吗网站建设平台计划书
  • 网站闭站保护10个著名摄影网站
  • 安徽省建设工程信息网官网首页网站关键词排名优化工具
  • 深圳网站建设 百业网站专题教程
  • 公司seo是指什么意思如何来做网站优化
  • 化妆品网站建设平台的分析湖南网站搜索排名优化电话
  • 织梦网站修改教程视频教程管理类网站开发价格
  • 如何让新网站快速收录企业建站的作用是什么
  • 在线制作简历的网站做的最好的微电影网站
  • h5制作的网站网络游戏投诉平台
  • 做外贸网站好还是内贸网站好珠海新盈科技有限公 网站建设
  • php和网站开发网络软营销
  • 大型做网站的公司有哪些wordpress注册链接无效
  • 推荐门户网站建设公司网站开发移动端