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

做网站的公司怎么转型网店运营怎么学

做网站的公司怎么转型,网店运营怎么学,百度seo整站优化公司,泰安网站建设怎么样集合 目录 集合java中存在哪些集合?底层实现逻辑?哪些集合是线程安全的?集合的对比:hash冲突如何解决hashmap为什么线程不安全,如何实现安全?hashmap中循环链表的产生hashmap底层实现原理和扩容机制map的遍…

集合

目录

    • 集合
      • java中存在哪些集合?底层实现逻辑?
      • 哪些集合是线程安全的?
      • 集合的对比:
      • hash冲突如何解决
      • hashmap为什么线程不安全,如何实现安全?
      • hashmap中循环链表的产生
      • hashmap底层实现原理和扩容机制
      • map的遍历方式

java中存在哪些集合?底层实现逻辑?

哪些集合是线程安全的?

hashtable(不常用,低并发下性能较差,因为put和get操作都需要同步),concurrenthashmap,基于分段锁实现,将数据结构分段,不同线程可以同时对不同段读写,提高并发度。

集合的对比:

一律从底层实现(数组,动态数组,双向链表,红黑树),线程安全(vector,hashtable,concurrenthashmap是线程安全的),迭代方式,元素类型(基本元素or对象,可否存null,是否重复,是键值对还是单一元素),
hashmap与hashtable
hashmap与hashset(map存储键值对,set存储单一键值,set可以放一个null,map的key和value都可为null,性能方面由于set只存值,性能相比map较好)
arraylist与linkedlist
arraylist与arraydeque
hashmap与concurrenthashmap区别(线程安全,concurrent通过分段锁实现,高并发和低并发下二者有不同性能,hashmap在并发下只能通过外部同步的方法实现同步,collections.synchronizedmap()方法。。以及迭代时是否需要加锁)

hash冲突如何解决

先说明hash冲突的发生原因,hash表的实现是由数据经过hash函数运算得到的位置进行存储,但hash表的位置是有限的,计算的数据是无限的,总会出现不同组数据经过计算得到相同hash值的情况,就叫hash冲突。
解决方法:
开放寻址:根据冲突后的地址向前寻找一个空闲的位置进行存储

链式寻址:把存在hash冲突的位置按单向链表的形式存储

再hash法:再使用另一个hash函数对这个key进行运算,直到不再发生冲突。此方法会对性能有影响,可能会增加计算时间。

建立公共溢出区:把hash表分为基本表和溢出表,有冲突的值一律放到溢出表的部分

hashmap为什么线程不安全,如何实现安全?

并发修改,可能一个线程进行写操作,另一个线程读操作的时候可能会读取到不一致的数据导致抛出异常。
操作不是原子的,比如查找某个key是否存在的操作,多个线程可能会产生竞态条件。

实现安全,通过collections.concurrentsynchronizedMap(),创建一个线程安全的hashmap,使put和get操作实现同步
或使用concurrentHashmap
或显示地使用锁

hashmap中循环链表的产生

jdk1.7中是使用头插法给table扩容的,在多线程的情况下容易导致线程1还在处理节点,线程2已经逆序扩好容了,此时会产生循环链表的情况

hashmap底层实现原理和扩容机制

哈希表里的每个元素都是一个node类(基于map.entry的实现),node对象包含key,value,hash值,next节点存储下一个节点位置,所以只需要记录每个hash的第一个node就可以遍历到整个map中的node

map的遍历方式

forEach+getkey()/values()一次性取出所有key或者value遍历
forEach+entrySet,将键值对存入set遍历
使用interator+entrySet()结合,优点是每一步循环都可控,循环过程中可以改变集合的长度(forEach循环中不可以改变)
使用stream流+lambda表达式

http://www.hkea.cn/news/855038/

相关文章:

  • bing 网站管理员2023今日新闻头条
  • 深圳市做网站前十强百度一下搜索网页
  • 做执法设备有哪些网站国家免费培训学校
  • 顺德乐从有做阿里巴巴的网站吗杭州网站设计
  • 做英文网站 用阿里服务器行吗b2b网站推广排名
  • 搭建网站做淘宝客网赌怎么推广拉客户
  • 网站建设前台与后台最新技术2021最新免费的推广引流软件
  • 做网站基本语言淘宝如何提升关键词排名
  • wordpress怎样分类目录添加标签seo文章范文
  • 订阅号可以做网站吗南宁seo外包服务商
  • 邢台哪儿做网站便宜宁波 seo排名公司
  • 深圳网站优化咨询网上广告怎么推广
  • 网站右击无效是怎么做的网络营销产品
  • 中宣部网站政治建设网站服务器是什么意思
  • 淮安网站定制徐州seo外包公司
  • 嘉兴类网站系统总部网站建设技术解决方案
  • 做网站的教科书外包网络推广公司推广网站
  • 模板名字 wordpress优化大师如何删掉多余的学生
  • 3d网站建设制作百度关键词优化手段
  • 新手做那些网站比较好东莞企业网站排名
  • 欧美风格网站360指数
  • 优秀网站建设公司电话下列哪些店铺适合交换友情链接
  • 58同城乌鲁木齐网站建设重庆网站到首页排名
  • wordpress知言主题山东服务好的seo公司
  • 旅游商务平台网站建设功能需求关键词排名查询官网
  • 做网站要搭建本地服务器么微商引流被加方法精准客源
  • 网站名字要备案吗友情链接怎么弄
  • 江苏网站开发外链网站大全
  • 网站代备案流程图百度关键词优化排名技巧
  • 石狮建设局网站今日头条站长平台