开发环境
基于:IntelliJ IDEA
、Maven构建工具
、JDK1.8
、SpringBoot 2.3.4
、Spring4.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接口的
非同步实现
,继承自AbstractMap
,AbstractMap
是部分实现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基于红黑树数据结构的实现,
键值可以使用Comparable
或Comparator
接口来排序
。在使用中,如果更新图时不需要保持图中元素的顺序
,就使用HashMap
,如需保持图中元素的插入顺序
或者访问顺序
,就使用LinkedHashMap
,如需要使图按照键值排序
,就使用TreeMap
。
总结:
待完善…
目前很多大佬都写过关于本教程了,如有雷同,请多多包涵.