Map--01--简介

tech2022-08-15  134

Map接口

概述

java.util接口 Map<K,V>

双列数据,存储key-value对的数据 —类似于高中的函数:y = f(x)类型参数: K - 此映射所维护的键的类型V - 映射值的类型。也叫哈希表、散列表。常用于存 键值对 结构的数据。其中的键不能重复,值可以重复.

特点

可以根据键 提取对应的值键不允许重复,如果重复值会被覆盖存放的都是无序数据初始容量是16,默认的加载因子是0.75

继承结构

Map结构的理解:

Map中的key:无序的、不可重复的,使用Set存储所有的key —> key所在的类要重写equals()和hashCode()(以HashMap为例)

Map中的value:无序的、可重复的,使用Collection存储所有的value —>value所在的类要重写equals()

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

Map中的entry:无序的、不可重复的,使用Set存储所有的entry

HashMap:

作为Map的主要实现类,线程不安全,效率高:能存储null的key和value

HashMap的底层:

数组+链表 (jdk7及以前)数组+链表+红黑树 (jdk8及以后)

LinkedHashMap:

在原有的HashMap底层结构基础上,添加了一对指针,指向前一个和后一个元素,保证在遍历map元素时,可以按照添加的顺序实现遍历。对于频繁的遍历操作,此类执行效率高于HashMap

TreeMap:

保证按照添加的key-value对进行排序,实现排序遍历,此时考虑key的自然排序或定时排序底层是红黑树

Hashtable:

作为古老的实现类,线程安全的,效率低,不能null的key和value.

Properties:

常用来处理配置文件,key和value都是string类型.

常用方法

最新回复(0)