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

杭州手机网站建设公司广告推广公司

杭州手机网站建设公司,广告推广公司,公司网站内容如何做,武汉app开发外包公司MapMap接口键 值 对存储键不能重复&#xff0c;值可以重复Map三个实现类的存储结构HashMap&#xff1a;Hash表链表红黑树结构 线程不安全TreeMap&#xff1a; 底层红黑树实现HashTable&#xff1a;hash表链表红黑树 线程安全HashMapHashMap常用方法HashMap<String,String>…

Map


Map接口

键 值 对存储

键不能重复,值可以重复

Map三个实现类的存储结构

HashMap:Hash表+链表+红黑树结构 线程不安全

TreeMap: 底层红黑树实现

HashTable:hash表+链表+红黑树 线程安全

HashMap

HashMap常用方法

 HashMap<String,String>map=newHashMap<>();
map.put("s","a");//添加元素,是无序的,键可以重复,值不可以重复
map.remove("s");//根据键可删除整个对
map.get("s");//根据键来找值,返回的是value
map.containskey("s");//判断集合中是否有这个键
map.containsvalue("a");//判断集合中是否有这个值
Set<String>kset=map.keyset();//单独将集合中的key这一列元素拿出来,返回的是一个set集合
List<String>list=map.Values();//将集合中value这一列元素拿出来,返回的是一个list集合

put方法添加元素整个过程,以及底层存储结构(重要)

底层结构:哈希表(数组)+链表+红黑树

数组主要用来定位元素位置,hash值取余数组长度等于位置索引,但有可能不同元素哈希值不同,但算出位置一样,此时使用链表来存储位置相同元素,当链表长度等于8时,将链表自动转换为红黑树,当红黑树长度删减为6时,又转回链表。

数组的扩容机制:hash表开始默认长度是16,当元素占数组长度为0.75时(这个倍数保证效率和空间不被浪费,用一定的空间换取效率),会对数组进行扩容操作,扩容为原来的2倍。

完整过程(也是源码的完整过程)

当我们向hashMap集合中添加元素时,判断重复后(与hashSet去重方法一致,因为其底层也是用hashmap存储的),根据key值调用hash方法(并不是hashcode方法,它是hashMap类中的一个方法)计算出此key在数组中的位置,如果这个位置没有元素,则直接添加,若已经有了元素,此时会有三种情况,一是此位置存储的这个元素与新加的元素键相同,但值不相同,我们选择替换值;二是此位置的元素为链表结构,我们添加在链表尾,还需要注意是否化为红黑树;三是此位置的元素已经转为红黑树,底层以树的方式添加(注:二三种情况也会有一出现,具体也是要替换值,在底层都有实现)。

put方法源码:

源码中的一些常量

TreeMap

底层是红黑树实现

key所在类必须实现comparable接口,可以按照值自然顺序排序(也可指定)

也是键值两列,其余与TreeSet类似

HashTable

是线程安全的,其中不能存储key为null的对象(具体可看源码,且HashMap可以但只能存储一个键为null的元素)

底层也是hash结构+链表+红黑树,但他是线程安全的,在并发量较低的情况下。

Map的遍历/Map集合迭代

  1. 使用增强for

Set<String>keyset=map.keySet();//先拿到键这一列
for(Stringkey: keyset){
System.out.println(key+map.get(key));//通过键找值
}

2.建议的遍历方式,使用entrySet

map底层为了方便遍历,将每个键值对都放入一个Entry对象中,并将多个Entry对象放到一个set集合中

Set<Entry<String,String>>entryset=map.entry();
//拿到entry集合后,我们遍历entryset这个集合就可以遍历map

http://www.mnyf.cn/news/43223.html

相关文章:

  • 网站开发工程师介绍广告资源发布平台
  • 怎么做资源网站个人接外包的网站
  • 网站中 点击出现登录框怎么做app推广员怎么做
  • 深圳开发的购物网站广点通推广登录入口
  • 目录网站模板北京十大教育培训机构排名
  • 苏州网络推广公司永阳北京官网seo
  • 怎么区分模板网站什么是网络营销策略
  • 用discuz可以做视频网站吗市场推广专员
  • wap网站制作教程杭州明开seo
  • 自己建网站做外贸生猪价格今日猪价
  • wordpress 自动超链接江北seo综合优化外包
  • 域名注册好如何做网站seo小白入门
  • 网站建设工作策划方案2022社会热点事件及看法
  • 宝应网站百度会员登录入口
  • wordpress 证书处理事件seo软件
  • 淘宝客怎么做的网站百度收录排名
  • 手机怎么做黑网站品牌推广策略包括哪些内容
  • 网站制作工作室桌面百度
  • 北京网站开发飞沐江苏免费关键词排名外包
  • 大型企业网站建设深圳外包网络推广
  • 无锡网站制作有哪些谷歌seo外链
  • 黄村做网站建设网络营销方案策划论文
  • 网站管理规划方案快速开发平台
  • 长沙中小企业做网站淘宝指数在哪里查询
  • delphi可以做网站吗seo诊断报告怎么写
  • 在线购物网站 模版地推放单平台
  • 武汉软件公司排名在线网站seo优化
  • 360免费建站可以免费又永久吗江苏做网站的公司有哪些
  • 做个公司网站多少钱湖南长沙seo
  • php可以独立做网站吗英文外链代发