Java 重点 | Map 集合
Map 集合
概述
java.util.Map<k,v>集合 Map 集合的特点:1.Map 集合是一个双列集合,一个元素包含两个值(一个 key,一个 value)。2.Map 集合中的元素,key 和 value 的数据类型可以相同,也可以不同。3.Map 集合中的元素,key 是不允许重复的,value 是可以重复的。4.Map 集合中的元素,key 和 value 是一一对应。
结构继承图
继承图详细介绍
Map 集合介绍:1、Map 集合和 Collection 集合没有关系。2、Map 集合以 key 和 value 的这种键值对的方式存储元素。3、key 和 value 都是存储 java 对象的内存地址。4、所有 Map 集合的 kev 特点:无序不可重复的。Map 集合的 key 和 Set 集合存储元素特点相同。
HashMap 集合介绍:HashMap 集合底层是哈希表数据结构,查询速度快,是非线程安全的。在 JDK8 之后,如果哈希表单向链表中元素超过 8 个,单向链表这种数据结构会变成红黑树数据结构。当红黑树上的节点数量小于 6 时,会重新把红黑树变成单向链表数据结构。这种方式也是为了提高检索效率,二叉树的检索会再次缩小扫描范围。提高效率。初始化容量 16 默认加载因子.75JDK1.8 之前:数组+单向链表 JDK1.8 之后:数组+单向链表/红黑树(链表的长度超过 8):提高查询的速度 HashMap 集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致扩容是:扩容之后的容量是原容量的 2 倍。
LinkedHashMap 集合介绍:1.底层是哈希表+链表(保证迭代的顺序)2.是一个有序的集合,存储元素和取出元素的顺序是一致的
Hashtable 集合介绍:Hashtable 集合底层也是哈希表数据结构,是线程安全的,其中所有的方法都带有 synchronized 关键字,效率较低,现在使用较少了,因为控制线程安全有其它更好的方案.
Properties 属性类介绍:Properties 是线程安全的,因为继承 Hashtable,另外 Properties 存储元素的时候也是采用 key 和 value 的形式存储,并且 key 和 value 只支持 String 类型不支持其它类型。Properties 被称为属性类。
SortedMap 集合介绍:SortedMap 集合的 key 存储元素的特点:首先是无序不可重复的,另外放在 SortedMap 集合 key 部分的元素会自动按照大小顺序排序称为可排序称为可排序的集合。
TreeMap 集合底层的数据结构是一个二叉树。
Map 接口中常用方法
public V put(K key,V value):
把指定的键与指定的值添加到 Map 集合中。public V remove(Object key):
把指定的键所对应的键值对元素在 Map 集合中删除,返回被删除元素的值public V get(Object key):
根据指定的键,在 Map 集合中获取对应的值。boolean containsKey(Object key):
判断集合中是否包含指定的键
put 方法
public V put(K key,V value):
把指定的键与指定的值添加到 Map 集合中。返回值:v 存储键值对的时候,key 不重复,返回值 v 是 null。存储键值对的时候,kev 重复,会使用新的 value 替换 map 中重复的 value,返回被替换的 value 值。
举例
remove 方法
public V remove(Object key):
把指定的键 所对应的键值对元素 在 Map 集合中删除,返回被删除元素的值。返回值:Vkey 存在,v 返回被删除的值。key 不存在,v 返回 null。
举例
get 方法
public V get(Object key):
根据指定的键,在 Map 集合中获取对应的值。返回值:key 存在,返回对应的 value 值。key 不存在,返回 null。
举例
containsKey 方法
boolean containsKey(Object key):
判断集合中是否包含指定的键,包含返回 true,不包含返回 false
举例
版权声明: 本文为 InfoQ 作者【几分醉意.】的原创文章。
原文链接:【http://xie.infoq.cn/article/43887feac4c0b1f8708808513】。文章转载请联系作者。
评论