【JAVA数据结构】概况总览

简介: 常用集合类(每个分支的末尾为class)(其他都是接口)

一. 常用集合类(每个分支的末尾为class)(其他都是接口)

注意:这里省略了一些接口和抽象类,是因为基本不用到



接下来,根据这个思维导图,再以“复刻java自带的类”的背景,进行学习吧!(本章只做总起部分,之后每个部分将进行详细讲解,并在此文章附上链接),并且,一些知识点要额外讲述,不仅仅局限于集合类的使用,还会引入其他知识并学会看源码。


List重点用于"存放元素"

ArrayList 顺序表,底层为数组

LinkedList 链表,底层为一个节点一个节点链接而成

Queue重点在于“排队” ----先进先出,画图一般画成管子 ->| |

Deque 双端队列

由LinkedList实例化:链表实现的双端队列,以及栈

由ArrayList实例化:数组实现的双端队列,以及栈

由LinkedList实例化:链表实现的单队列,以及栈

由ArrayDeque实例化:数组实现的单队列,以及栈

由PriorityQueue实例化:数组实现的优先级队列

Stcak重点在于“表面” ----先进后出,画图一般画成一个桶(每次取最上面的)

由Stack本身实例化,功能单一简单

Set重点在于“不重复” ----重复了会后来者被覆盖掉,这种数据结构重点在“查找迅速”,Set(集子 -> 轴)

由TreeSet实例化:二叉搜索树(红黑树)实现

由HashSet实例化:哈希表实现

Map重点在于“映射“ ----在Set上,多了映射关系,Map(图 -> 坐标系)

由TreeMap实例化:二叉搜索树(红黑树)实现

由HashMap实例化:哈希表实现

一般在使用时,用 interface 被 class 实例化的模式最后,这样功能更有指向性。


二.代码好与坏

时间复杂度

空间复杂度

这两个很重要,一般重视降低时间复杂度优化代码


三.java语法的完善补充

Java语法的完善补充博客链接


包装类


装箱拆箱

泛型


通配符

String常量池


反射


枚举


λ表达式(lambda)


四.List类

4.1 ArrayList顺序表

ArrayList顺序表博客


斗牛设计

斗牛博客链接

4.2 LInkedList链表

五.Stack类 - 栈

完美计算器设计

完美计算器博客链接

六. Queue类 - 单队列

6.1数组实现队列

6.2循环队列

6.3双端位列Deque

七.二叉树

7.1 二叉树基本知识(重点)

7.2PriorityQueue类

java引用之间的比较

7.2.1放在数组中的特殊完全二叉树(堆)

7.2.2小堆与大堆

八.Set&Map类

8.1 基本使用以及源码阅读

8.2.1二叉搜索树-TreeSet,TreeMap

8.2.2 哈希表-HashSet,HashMap

哈希表博客链接

九.排序

排序博客链接


9.1 插入排序

9.2 希尔排序

9.3 冒泡排序

9.4 选择排序

9.5 堆排序

9.6 快速排序

9.7 归并排序

十. 其他排序

其他排序博客链接


10.1 计数排序

10.2 基数排序

10.3 桶排序

10.4 搜索树排序

不太好,因为要搭建二叉搜索树(后输出中序序列),并不是本质改变数组。

目录
相关文章
|
8天前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
34 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
6天前
|
存储 算法 Java
Java常用的数据结构
【10月更文挑战第3天】 在 Java 中,常用的数据结构包括数组、链表、栈、队列、树、图、哈希表和集合。每种数据结构都有其特点和适用场景,如数组适用于快速访问,链表适合频繁插入和删除,栈用于实现后进先出,队列用于先进先出,树和图用于复杂关系的表示和查找,哈希表提供高效的查找性能,集合用于存储不重复的元素。合理选择和组合使用这些数据结构,可以显著提升程序的性能和效率。
|
13天前
|
存储 Java
数据结构第二篇【关于java线性表(顺序表)的基本操作】
数据结构第二篇【关于java线性表(顺序表)的基本操作】
24 6
|
1月前
|
Java
java数据结构,双向链表的实现
文章介绍了双向链表的实现,包括数据结构定义、插入和删除操作的代码实现,以及双向链表的其他操作方法,并提供了完整的Java代码实现。
java数据结构,双向链表的实现
|
1月前
|
存储 Java
java数据结构,线性表链式存储(单链表)的实现
文章讲解了单链表的基本概念和Java实现,包括头指针、尾节点和节点结构。提供了实现代码,包括数据结构、接口定义和具体实现类。通过测试代码演示了单链表的基本操作,如添加、删除、更新和查找元素,并总结了操作的时间复杂度。
java数据结构,线性表链式存储(单链表)的实现
|
13天前
|
Java 语音技术 容器
java数据结构泛型
java数据结构泛型
23 5
|
13天前
|
存储 安全 Java
【用Java学习数据结构系列】探索顺序表和链表的无尽秘密(附带练习唔)pro
【用Java学习数据结构系列】探索顺序表和链表的无尽秘密(附带练习唔)pro
18 3
|
13天前
|
存储 安全 Java
【用Java学习数据结构系列】探索栈和队列的无尽秘密
【用Java学习数据结构系列】探索栈和队列的无尽秘密
25 2
|
13天前
|
存储 Java 编译器
【用Java学习数据结构系列】初识泛型
【用Java学习数据结构系列】初识泛型
16 2
|
13天前
|
存储 缓存 Java
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
27 1