JAVA语言-Map底层实现和应用详解
孙凯 2018-04-18 来源 : 阅读 851 评论 0

摘要:JAVA语言中,Map Map集合类用于存储元素对(称作键和值),其中每个键映射到一个值,该接口描述了从不重复的键到值的映射。

1.Map概述

    Map Map集合类用于存储元素对(称作键和值),其中每个键映射到一个值,该接口描述了从不重复的键到值的映射。

2.Map子类

    1).HashTable,底层是哈希表数据结构,不可以存入null键和null值,线程同步,JDK1.0效率低;
    2).HashMap,底层是哈希表数据结构,可以存入null键和null值,不同步,JDK1.2效率高;
    3).TreeMap,底层是二叉树数据结构,线程不同步,可以用于Map键排序.

3.Map集合转为Set集合

    1).SetkeySet(),将所有的键存入Set集合,再使用迭代器获取value值
    2).Set<Map.Entry>entrySet(), entrySet()方法返回一个实现Map.Entry接口的Set集合,集合中存放的是键/值对应关系,该关系是Map.Entry型。其中Entry是Map接口的内部接口。
        Map.Entry提供的方法:
            A)getKey(): 返回条目的关键字
            B)getValue(): 返回条目的值

4.Map常见操作

    1).添加操作:
        V put(K key, V value):如果key已存在,在关联后,返回替换前该key对应的value值,如果不存在,则返回null;
        void putAll(Map t):将来自特定映像的所有元素添加给该映像.
    2).删除操作:
        V remove(Object key):从此映射中移除指定键的映射关系(如果存在),不存在则返回null;
        void clear() :从此映射中移除所有映射关系. 
    3).查询操作:
        V get(key): 获得与关键字key相关的值,并且返回与关键字key相关的对象,如果没有该关键字,则返回null;判断key是否存在,可以通过返回值是否等于null
        boolean containsKey(key): 判断映像中是否存在关键字key;
        boolean containsValue(Object value): 判断映像中是否存在值value;
        int size(): 返回当前映像中映射的数量;
        boolean isEmpty(): 判断映像中是否有任何映射.
        Collection values():返回映像中所有value值的集,由于值多个,用Collection集合,对其操作可以使用Collection基本方法

5.Map简单应用

下面这个是一个面试题,希望看到文章的朋友都能动手写写!

GajhdhgshagfjhgahksjgfkjhgasjgfkajgfjhasgfjhgajhfgjakgfjlgejwffjShfgsjgfjhjfbajgudgaelwugjbflajmebwflugaliufgalifgbSDHjkGFjkhlsGJKhDSFKhSKHDkhKKDLHLKDgajfagfjkalkgfkaf

1:统计一个字符串中每个字符出现的次数

2:求:这个字符串中a 出现的次数


完成之后请截图发到老孙的邮箱(705306999@qq.com),有惊喜哦

拿起微信扫一扫,关注老孙的微信公众号,里面有更多专业知识讲解JAVA语言-Map底层实现和应用详解

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言频道!

本文由 @职坐标 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 0
看完这篇文章有何感觉?已经有2人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
本文作者 联系TA

讲课幽默生动,擅长引导的教学方式,得到了广大学员的认可

  • 56
    文章
  • 3526
    人气
  • 92%
    受欢迎度

已有13人表明态度,92%喜欢该老师!

进入TA的空间
名师指导 直通车
  • 索取资料 索取资料 索取资料
  • 答疑解惑 答疑解惑 答疑解惑
  • 技术交流 技术交流 技术交流
  • 职业测评 职业测评 职业测评
  • 面试技巧 面试技巧 面试技巧
  • 高薪秘笈 高薪秘笈 高薪秘笈
TA的其他文章 更多>>
IT行业知识之一个合格的程序员,需要哪些必备技能
经验技巧 100% 的用户喜欢
痛点:JAVA语言的过滤器与拦截器到底有什么区别_该如何选择
经验技巧 100% 的用户喜欢
java编程学习何去何从?清晰的思路让你不在迷茫
经验技巧 100% 的用户喜欢
JAVA语言之mybatis的底层原理分析及相关配置
经验技巧 100% 的用户喜欢
JavaEE ibatis和mybatis的区别
经验技巧 100% 的用户喜欢
其他海同名师 更多>>
刘新华
刘新华 联系TA
实力型。激情饱满,对专业充满热情
吴翠红
吴翠红 联系TA
独创“教、学、练、测”循环教学模式
吕益平
吕益平 联系TA
熟悉企业软件开发的产品设计及开发
黄泽民
黄泽民 联系TA
擅长javase核心技术
程钢
程钢 联系TA
擅长大型企业商业网站开发和管理
经验技巧30天热搜词 更多>>

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:13167058313
小职老师的微信号:13167058313

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    ICP许可  沪B2-20190160

站长统计