Map 映射接口 概述

Map是一个双列数据,存储K-V类型的数据 JDK1.2  

- HashMap  是目前Map的主要实现类 JDK1.2  线程不安全的,效率高,可存储null的key和value

- LinkedHashMap  是HashMap的子类 JDK1.4  遍历Map元素,可以按照添加的顺序实现遍历,在原有的HashMap上添加了一对指针,可指向前一个&后一个对象,如果要频繁遍历适用

- TreeMap  树形映射实现类 JDK1.2  保证按照添加的顺序进行排序,考虑Key的自然排序或定制排序,底层使用红黑树

- HashTable  哈希表,初代目的Map JDK1.0  线程安全,但是效率低,不可存储null的key&value

- Properties  哈希表的子类,处理配置文件,Key&Value必须都是String类型

HashMap底层:

数组 + 链表 (JDK7 -)

数组 + 链表 + 红黑树 (JDK8 +)

Map结构的理解:

Key  无序且不可重复的,使用Set存储所有的Key  Key所在的类要重写equals & hashCode方法

Value  无序但可重复的,使用Collection存储所有的Value  Value所在的类要重写equals方法

一个键值对:key-value构成了一个Entry对象

Entry  也是无序的不可重复,Entry == Set,所以Set存储了所有的Entry

Map的常用方法:

【Java】Map 映射接口 概述的更多相关文章

  1. Java精选笔记_集合【Map(映射)接口】

    Map(映射)接口 简介 该集合存储键值对,一对一对的往里存,并且键是唯一的.要保证map集合中键的唯一性. 从Map集合中访问元素时,只要指定了Key,就能找到对应的Value. 关键字是以后用于检 ...

  2. Java基础学习-接口-概述以及成员特点

    package interfaceclass; /*接口的概述: * 接口解决的问题: * 因为java中的继承的单一局限性(子类只能继承一个父类),为了打破这个局限,java语言提供了一个机制,接口 ...

  3. Java集合-07Map接口及其抽象类

    简介 前面把List基本记录完了,对于集合List,Map,Set,因为Set基于Map,故先记录Map. 这一篇主要记录Map接口及其抽象类(java version:1.8) 整体架构 参考上图, ...

  4. Java基础知识强化之集合框架笔记50:Map集合之Map集合的概述和特点

    1. Map集合的概述: public interface Map<K,V> 作为学生来说,是根据学号来区分不同的学生的,那么假设我现在已经知道了学生的学号,我要根据学号去获取学生姓名,请 ...

  5. java.util (Collection接口和Map接口)

    1:Collection和Map接口的几个主要继承和实现类                  1.1  Collection接口 Collection是最基本的集合接口,一个Collection代表一 ...

  6. java.util.Map.Entry接口

    java.util.Map.Entry接口主要就是在遍历map的时候用到,给你个例子:package test;import java.util.*;import java.util.Map.Entr ...

  7. IBM Developer:Java 9 新特性概述

    Author: 成富 Date: Dec 28, 2017 Category: IBM-Developer (20) Tags: Java (27) 原文地址:https://www.ibm.com/ ...

  8. java.map使用

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

  9. Java API —— Set接口 & HashSet类 & LinkedHashSet类

    1.Set接口     1)Set接口概述         一个不包含重复元素的 collection,无序(存储顺序和取出顺序不一致),唯一.  (List有序,即存储顺序和取出顺序一致,可重复) ...

  10. Java 集合学习--集合概述

    一.集合框架 集合,通常也叫容器,java中有多种方式保存对象,集合是java保存对象(对象的引用)的方式之一,之前学习的数组是保存对象的最有效的方式,但是数组却存在一个缺陷,数组的大小是固定的,但是 ...

随机推荐

  1. k8s——pod生命周期

    图解 Pod生命周期 Pod的退出流程 Endpoint删除pod的ip地址 Pod变成Terminating状态 变为删除中的状态后,会给pod一个宽限期,让pod去执行一些清理或销毁操作 配置参数 ...

  2. react组件传值(props[只读属性]) 函数组件

    组件间传值,在React中是通过只读属性 props 来完成数据传递的. props:接受任意的入参,并返回用于描述页面展示内容的 React 元素. function Cmp1(props) { r ...

  3. Linux扩展篇-shell编程(三)-shell运算符

    基本语法: 格式一 expr +. -. \*./. %(加.减.乘.除.求余) 格式二 "$((运算式))"或者"$[运算式]" 基本运算符 Shell 和其 ...

  4. CF914C

    problem & blog 数位 dp 模板题. 经过一次操作,可以把 \(n\) 变成一个小于 \(10^3\) 的数. 所以我们可以把所有小于 \(10^3\) 的数操作的次数全部处理出 ...

  5. ABC332

    D 我们可以把矩阵 \(\text{A}\) 看成 \({p,q}\). \(p\) 指现在一行最开始在哪里,\(q\) 指现在这一列最开始在哪里. 于是我们枚举 \(p\) 和 \(q\) 所有可能 ...

  6. python的requirements.txt_维护项目依赖包

    pycharm没有类似maven用于管理依赖包的工具,当一个项目在新的环境运行前,需要将对应依赖的包下载回来,如果一个个下载,会出现缺漏或版本号不对应的情况,这个时候可以用requirements.t ...

  7. hdu 5072 coprime不完整题解

    Problem Description There are n people standing in a line. Each of them has a unique id number. Now ...

  8. 高通Android平台 电池 相关配置

    背景 在新基线上移植有关的代码时,在log中发现有关的东西,请教了有关的同事以后,解决了这个问题. [ 12.775863] pmi632_charger: smblib_eval_chg_termi ...

  9. ARM GIC 系列文章学习(转)

    原文来自:骏的世界 ARM GIC(一) cortex-A 处理器中断简介 对于ARM的处理器,中断给处理器提供了触觉,使处理器能够感知到外界的变化,从而实时的处理.本系列博文,是以ARM corte ...

  10. MyBase 7.1 可用的 Markdown 配置表

    背景 找到了一款Markdown 笔记本软件MyBase,7.1版本支持markdown,所以我非常喜欢,修改了自己博客的css到软件里面,瞬间变得好看了. 效果图 设置方法 "工具 - 编 ...