文章目录

  • 一、Map集合的特点:
  • 二、Map中的方法:
  • 三、遍历Map集合的方式
  • 四、Map的常用实现类

一、Map集合的特点:

Map集合的特点:
1.Map是一个双列集合,一个元素包含两个值(一个key,一个value)

2.Map集合中的元素,key和value的数据类型可以相同,也可以不同

3.Map中的元素,key不允许重复,value可以重复

4.Map里的key和value是一一对应的。

二、Map中的方法:

1.public V put (K key,V value) 把指定的键和值添加到Map集合中,返回值是V

如果要存储的键值对,key不重复返回值V是null

如果要存储的键值对,key重复返回值V是被替换的value值

  1. public V remove(Object key)把指定键所对应的键值对元素,在Map集合中删除,返回被删除的元素的值。 返回值:V 。如果key存在,返回被删除的值,如果key不存在,返回null

3.public V remove (Object key):根据指定的键 在Map集合中获取对应的值

如果key存在,返回对应的value值,如果key不存在,返回null

4.boolean containsKey( Object key)判判断集合中是否包含指定的键

包含返回true,不包含返回false

三、遍历Map集合的方式

1.通过键找值的方法;

使用了setKey方法,将Map集合中的key值,存储到Set集合,用迭代器或foreach循环遍历Set集合来获取Map集合的每一个key,并使用get(key)方法来获取value值

2.使用Entry对象遍历

Map.Entry<K,V>,在Map接口中有一个内部接口Entry(内部类)

作用:当集合一创建,就会在Map集合中创建一个Entry对象,用来记录键与值(键值对对象,键值的映射关系)

有了Entry对象就可以使用Map中的entrySet方法,把Map集合中的多个Entry对象存入一个Set集合来遍历Set集合,获取Set集合中每一个Entry对象,然后可以使用Entry中的两个方法getKey和getValue来分别获取键和值。

代码步骤:

四、Map的常用实现类

(一)、HashMap
【1】.特点:1.HashMap底是哈希表,查询速度非常快(jdk1.8之前是数组+单向链表,1.8之后是数组+单向链表/红黑树 ,链表长度超过8时,换成红黑树)

 2. HashMap是无序的集合,存储元素和取出元素的顺序有可能不一致3.集合是不同步的,也就是说是多线程的,速度快

【2】.HashMap存储自定义类型键值

HashMap存储自定义类型键值,Map集合保证key是唯一的:作为key的元素,必须重写hashCode方法和equals方法,以保证key唯一

(二)LinkedHashMap
HashMap有子类LinkedHashMap:LinkedHashMap <K,V> extends HashMap <K,V>

是Map接口的哈希表和链表的实现,具有可预知的迭代顺序(有序)

底层原理:哈希表+链表(记录元素顺序)

特点:1.LinkedHashMap底层是哈希表+链表(保证迭代的顺序)

2.LinkedHashMap是一个有序的集合,存储元素和取出元素的顺序一致

改进之处就是:元素存储有序了

(三)Hashtable
Hashtable<K,V> implements Map<K,V>

Hashtable:底层也是哈希表,是同步的,是一个单线程结合,是线程安全的集合,速度慢

HashMap:底层也是哈希表,但是线程不安全的集合,是多线程集合,速度快

HashMap(还有之前学的所有集合):都可以存储null键,null值

Hashtable:不能存储null键

javaMap集合 详解相关推荐

  1. JAVA--Map集合详解

    特点:该集合存储键(key)值(value)对,一对一对往里存,而且要保证键(key)的唯一性. Map集合和Set集合很像,其实Set集合底层就是使用了Map集合. 什么时候使用Map集合: 当数据 ...

  2. Java集合详解之Map

    一.首先看看集合框架体系图 从图中可以看到,Map接口扩展了Iterator接口,关于Iterator接口详解请移步:Iterator接口详解 二.Map是什么? Map<k,v>使用键值 ...

  3. 1.8 Collections类操作集合详解——排序,查找,复制

    Collections类操作集合详解 Collections 类是 Java 提供的一个操作 Set.List 和 Map 等集合的工具类. Collections 类提供了许多操作集合的静态方法,借 ...

  4. java list取值_Java集合详解

    一.集合的由来 通常,我们的程序需要根据程序运行时才知道创建多少个对象.但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型.为了满足这些常规的编程需要,我们要 ...

  5. php打印出函数的内容吗,PHP打印函数集合详解以及PHP打印函数对比详解(精)

    1 echo();2 print();3 die();4 printf();5 sprintf();6 print_r();7 var_dump(); 1 echo() 可以同时输出多个字符串,可以多 ...

  6. 集合 (二) ----- Map集合详解

    相关文章: <集合 (一) ----- 集合的基本概念与Collection集合详解> <集合 (二) ----- Map集合详解> 文章目录 Map集合详解 一.Map集合基 ...

  7. 集合 (一) ----- 集合的基本概念与Collection集合详解

    相关文章: <集合 (一) ----- 集合的基本概念与Collection集合详解> <集合 (二) ----- Map集合详解> 文章目录 集合的基本概念 一.集合的分类 ...

  8. Java集合详解6:TreeMap和红黑树

    <Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...

  9. 【Java-Java集合】Java集合详解与区别

    [Java-Java集合]Java集合详解与区别 1)概述 2)集合框架图 2.1.总框架图 2.2.Iterable 框架图 2.3.Map 框架图 3)List 3.1.ArrayList 类继承 ...

最新文章

  1. python量化外汇交易_用Python实现一个Dual Thrust数字货币量化交易策略
  2. 如何在Azure machine learning中使用异常检测
  3. 7——条件判断、三目运算、条件循环、迭代循环
  4. python添加、修改、删除、访问类对象属性的2种方法
  5. PHP限制提交文章条数,限制WordPress文章页面修订版本(revision)数量
  6. 【Python爬虫】Python3+selenium环境配置
  7. mybatis 原理_深入理解MyBatis原理 MyBatis数据源与连接池
  8. 6月8日任务(12.10 Nginx访问日志 12.11 Nginx日志切割 12.12 静态文件)
  9. Git学习系列(五)分支管理详解
  10. Spyder 常用操作
  11. c语言表达式4 6的值是,C语言中,为什么指针表达式的值+1.对应的地址值却+4?/为什么两个数组元素的地址相减之差不为地址之差?...
  12. paip.注册java程序为LINUX系统服务的总结。
  13. 语义分割学习——残差网络ResNet
  14. 各类木材强度_常用木材防腐剂有哪些
  15. 浅谈智能卡技术在数字电视小额支付系统中的应用
  16. 市场app应用类型分类有哪些?app应用管理
  17. 【电力电子】【2012.07】基于功率因数校正的三相整流器设计与仿真
  18. phabricator 结合 arcanist 使用
  19. Asp连接数据库时的问题Microsoft OLE DB Provider for ODBC Drivers error ‘80004005‘
  20. 教大家集中注意力的训练方法

热门文章

  1. Spring BlazeDS Integration 的工作原理
  2. Vue联动下拉框默认选中
  3. uniapp小程序当前页面刷新
  4. MyBatis - 批量插入
  5. 基于STM32F103单片机的生理监控心率脉搏监控TFT彩屏显示
  6. java 将 object转成Integer
  7. STM32读取SHT3x系列温湿度传感器,标准库和HAL库
  8. 排名趋于稳定后,最新的博主排名(TOP10)
  9. 影像组学|特征定义以及提取
  10. 运维人员必会的系统安全