穿越Java - 语法基础篇 第五章 集合工具介绍 | 第4节 Map接口

开发环境

基于:IntelliJ IDEAMaven构建工具JDK1.8SpringBoot 2.3.4Spring4.3.28编写。

官人如需使用 IDEA 请阅读教程:IntelliJ IDEA
官人如需使用 Maven 请阅读教程:Maven 构建工具的下载与安装

更多干货

请参考:《穿越 Java 之 语法基础篇》 系列文章
请参考:《穿越 Java 之 Web基础篇 》系列文章
请参考:《穿越 Java 之 开发必备框架篇 》 系列文章
请阅读:《穿越 Java 之 SpringBoot框架篇》系列文章
请阅读:《穿越 Java 之 SpringCloud微服务架构篇》 系列文章

理解:

java.util.Map<K,V>

Map是一种存储键值对映射的容器类,在Map中键可以是任意类型的对象,但不能有重复的键,每个键都对应一个值,真正存储在图中的是键值构成的条目。

V get(Object key)
获得与键对应的值

V put(K key, V value)
V putAll(Map<? extends K, ? extends V> entries) 将键与对应的值关系插入到映射中

boolean containKey(Object key)
boolean containValue(Object value) 查询

HashMap<K,V>

java.util.HashMap<K,V>

理解:

HashMap是基于哈希表的Map接口的非同步实现,继承自AbstractMapAbstractMap是部分实现Map接口的抽象类。
HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当链表中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用数组+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。

LinkedHashMap<K,V>

java.util.LinkedHashMap<K,V>

理解:

LinkedHashMap继承HashMap,它主要是用链表实现来扩展HashMap类,HashMap中条目是没有顺序的,但是在LinkedHashMap中元素既可以按照它们插入图的顺序排序,也可以按它们最后一次被访问的顺序排序

TreeMap<K,V>

java.util.TreeMap<K,V>

理解:

TreeMap继承AbstractMap实现map接口。
同时实现了接口NavigableMap,而接口NavigableMap则继承自SortedMap。SortedMap是Map的子接口,使用它可以确保图中的条目是排好序的。
TreeMap基于红黑树数据结构的实现,
键值可以使用ComparableComparator接口来排序。在使用中,如果更新图时不需要保持图中元素的顺序,就使用HashMap,如需保持图中元素的插入顺序或者访问顺序,就使用LinkedHashMap,如需要使图按照键值排序,就使用TreeMap

总结:

待完善…

目前很多大佬都写过关于本教程了,如有雷同,请多多包涵.

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页