---恢复内容开始---

Map提供了一个更通用的元素存储方法,Map集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。

了解Map接口和方法

Map构建

Map更新方法:可以更改Map内容,

clear()从Map中删除所有的映射

remove(Object key)从Map中删除键和关联的值

put(Object key,Object  value)将指定值与指定键相关联

putAll(Map t)将指定Map中的所有映射复制到此Map

HashMap:

HashMap是基于哈希表的Map接口的实现,以key-value的形式存在,在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来计算key-value的位置

1.定义:

HashMap实现了Map接口,继承AbstractMap,其中Map接口定义了键映射到值的规则,而AbstractMap类提供Map接口的骨干实现

public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>,Cloneable,Serializable

2构造函数:

HashMap提供了三个构造函数:

HashMap():构造一个具有默认初始容量(16)和默认加载因子(0.75)的空HashMap

HashMap(int initialCapacity):构造一个带指定初始容量和默认加载因子(0.75)的空HashMap

HashMap(int initialCapacity,float loadFactor):构造一个带指定初始容量和加载因子的空HashMap

初始容量,加载因子,这两个参数是影响HashMap性能的重要参数,其中容量表示哈希表中桶的数量,初始容量是创建哈希表时的容量,加载因子是哈希表在其容量自动增加之前可以达到多满的一种尺度,他衡量的是一个散列表的空间的使用程度,负载因子越大表示散列表的装填程度越高,

3数据结构:

在java中最常用的两种结构是数组和模拟指针(引用),几乎所有的数据结构都可以利用这两种来组合实现,HashMap是一个“链表散列”,如下是他的数据结构

从上图可以看出HashMap底层实现的还是数组,只是数组的每一项都是一条链,其中参数initialCapacity就代表了该数组的长度
4存储实现:
4.HashMap
  在存储键值对的时候, 使用哈希算法对键对象去重复, 效率高, 没有顺序.
  当存储一个键值对的时候, 先调用键对象的hashCode()方法计算一个哈希值, 在集合中查找是否有哈希值相同键对象.
   如果没有哈希值相同的键对象, 直接将键值对存入.
   如果有哈希值相同键对象, 则和哈希值相同的键对象进行equals()比较.
    比较结果为false就存入键值对.
    比较结果为true则用新的值覆盖旧的值.

java Map集合类的更多相关文章

  1. Java Map 集合类简介

      作者:Jack Shirazi 了解最常用的集合类型之一 Map 的基础知识以及如何针对您应用程序特有的数据优化 Map. 本文相关下载: · Jack 的 HashMap 测试 · Oracle ...

  2. JAVA Map集合类简介

    了解最常用的集合类型之一 Map 的基础知识以及如何针对您应用程序特有的数据优化 Map. 本文相关下载: · Jack 的 HashMap 测试· Oracle JDeveloper 10g jav ...

  3. Java Map 集合类在selenium自动化测试设计中的应用

    我们在设计自动化测试用例的时候,往往很多工作是在处理测试的数据. 测试数据无论用Excel 文件, XML文件或者任何一种形式测存储方式,都会设计到参数化以及我们对数据的操作. 这个时候,我们会用到以 ...

  4. java的集合类【Map(映射)、List(列表)与Set(集)比较】

    https://baike.baidu.com/item/java%E9%9B%86%E5%90%88%E7%B1%BB/4758922?fr=aladdin https://www.cnblogs. ...

  5. java基础 集合类

    java集合类主要有以下集中: List结构的集合类: ArrayList类, LinkedList类, Vector类, Stack类 Map结构的集合类: HashMap类,Hashtable类 ...

  6. java.map使用

    Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象.       Map的接口       Map---实现Map       Map.Entry--Map的内部 ...

  7. Java Map 简介

    AbstractMap, Attributes, AuthProvider, ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap, H ...

  8. Java的集合类

    转自:Q.Mr的博客 http://www.cnblogs.com/zrtqsk/p/3472258.html (本人第一次写博客,部分内容有参照李刚老师的疯狂java系列图书,如有遗漏错误,请多指教 ...

  9. Java Map操作

    Map:键必须是唯一 同步方法:Map m = Collections.synchronizedMap(new TreeMap(...)); Hashtable:基于散列表的实现 允许空键空值 线程安 ...

随机推荐

  1. Jenkins MultiJob

    前提:项目有十几个服务每次发版/更新服务需要一个个去编译 目的:希望能够建立一个任务一次构建可以批量编译很多服务,并且需要输入一个参数指定编译的分支 需要插件: MultiJob 安装插件 1.在Je ...

  2. Part 21 to 22 AngularJS anchorscroll

    Part 21 AngularJS anchorscroll example $anchorscroll service is used to jump to a specified element ...

  3. vue 快速入门 系列 —— 使用 vue-cli 3 搭建一个项目(下)

    其他章节请看: vue 快速入门 系列 使用 vue-cli 3 搭建一个项目(下) 上篇 我们已经成功引入 element-ui.axios.mock.iconfont.nprogress,本篇继续 ...

  4. dart系列之:dart类的扩展

    目录 简介 使用extends 抽象类和接口 mixins 总结 简介 虽然dart中的类只能有一个父类,也就是单继承的,但是dart提供了mixin语法来绕过这样限制. 今天,和大家一起来探讨一下d ...

  5. 使用Token进行CSRF漏洞防御

    1.登录验证成功之后,在会话SESSION["user_token"]中保存Token. 2.在后台操作中,增删改表单中添加隐藏域hidden,设置value为Token. 3.提 ...

  6. pytest-mian函数运行

    1.设置多并发运行 1.命令行安装 pip install pytest-xdist #安装插件,进行多并发运行,#调用:-n -5 import pytest # pytest.main([&quo ...

  7. html图片动态增加文字

    <body> <!-- <div class="logo"> <img src="${imagePath}/disc.PNG" ...

  8. 『与善仁』Appium基础 — 14、Appium测试环境搭建

    目录 1.Appium测试环境搭建整体思路 (1)Android测试环境搭建 (2)Appium测试环境搭建 (3)测试脚本语言的环境搭建 2.Appium在Android端和IOS端的工作流程 (1 ...

  9. nodejs中的fs模块中的方法

    nodejs中的fs模块 引入模块 const fs =require("fs") 检测文件是否存在fs.stat(path,callback) fs.stat("./n ...

  10. JavaWeb 请求转发重定向

    请求转发和重定向 request除了可以作为请求对象之外,还可以作为域对象,但是该域对象的取值范围,是一次请求范围之内(浏览器地址栏没有发生跳转访问别的资源) 作用:将servlet中的数据通过req ...