开发环境
基于: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 之旅 - 让 我 助 您 轻 松 搞 定 面 试》
collection接口
List
-
ArrayList
本质就是动态数组,动态扩容 -
LinkedList
LinkedList是通过双向链表去实现的,他的数据结构具有双向链表的优缺点,既然是双向链表,那么的它的顺序访问效率会非常高,而随机访问的效率会比较低,它包含一个非常重要的私有内部静态类:Node -
Vector
和ArrayList很类似,都是以动态数组的形式来存储数据 -
Vector线程安全的
每个操作方法都加的有synchronized关键字,针对性能来说会比较大的影响,慢慢就被放弃了
set
- HashSet
概念:
HashSet实现Set接口,由哈希表支持,它不保证set的迭代顺序,特别是它不保证该顺序永久不变,运行使用null。
特点:
底层数据结构是哈希表,HashSet的本质是一个"没有重复元素"的集合,他是通过HashMap
实现的.HashSet中含有一个HashMap类型的成员变量map
. - TreeSet
概念:
基于TreeMap的 NavigableSet实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator进行排序,具体取决于使用的构造方法。
本质:
本质是将数据保存在TreeMap中,key是我们添加的内容,value是定义的一个Object对象。
iterator迭代
map接口
特点:
-
1.能够存储唯一的列的数据(唯一,不可重复) Set
-
2.能够存储可以重复的数据(可重复) List
-
3.值的顺序取决于键的顺序
-
4.键和值都是可以存储null元素的
HashMap
- 底层结构
1. Jdk1.7及以前是采用数组+链表
2. Jdk1.8之后 采用数组+链表 或者 数组+红黑树方式进行元素的存储
3. 存储在hashMap集合中的元素都将是一个Map.Entry的内部接口的实现
TreeMap
-
本质上就是红黑树的实现
-
1.每个节点要么是红色,要么是黑色。
-
2.根节点必须是黑色
-
3.每个叶子节点【NIL】是黑色
-
4.每个红色节点的两个子节点必须是黑色
-
5.任意节点到每个叶子节点的路径包含相同数量的黑节点
总结:
待完善…
目前很多大佬都写过关于本教程了,如有雷同,请多多包涵.