【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 搜索树排序

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

目录
相关文章
|
2月前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
95 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
2月前
|
存储 Java
Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。
【10月更文挑战第19天】本文详细介绍了Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。HashMap以其高效的插入、查找和删除操作著称,而TreeMap则擅长于保持元素的自然排序或自定义排序,两者各具优势,适用于不同的开发场景。
53 1
|
2月前
|
存储 Java
告别混乱!用Java Map优雅管理你的数据结构
【10月更文挑战第17天】在软件开发中,随着项目复杂度增加,数据结构的组织和管理至关重要。Java中的Map接口提供了一种优雅的解决方案,帮助我们高效、清晰地管理数据。本文通过在线购物平台的案例,展示了Map在商品管理、用户管理和订单管理中的具体应用,有效提升了代码质量和维护性。
97 2
|
2月前
|
存储 Java 开发者
Java Map实战:用HashMap和TreeMap轻松解决复杂数据结构问题!
【10月更文挑战第17天】本文深入探讨了Java中HashMap和TreeMap两种Map类型的特性和应用场景。HashMap基于哈希表实现,支持高效的数据操作且允许键值为null;TreeMap基于红黑树实现,支持自然排序或自定义排序,确保元素有序。文章通过具体示例展示了两者的实战应用,帮助开发者根据实际需求选择合适的数据结构,提高开发效率。
77 2
|
13天前
|
存储 缓存 安全
Java 集合江湖:底层数据结构的大揭秘!
小米是一位热爱技术分享的程序员,本文详细解析了Java面试中常见的List、Set、Map的区别。不仅介绍了它们的基本特性和实现类,还深入探讨了各自的使用场景和面试技巧,帮助读者更好地理解和应对相关问题。
33 5
|
1月前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
52 6
|
1月前
|
存储 Java 索引
Java中的数据结构:ArrayList和LinkedList的比较
【10月更文挑战第28天】在Java编程世界中,数据结构是构建复杂程序的基石。本文将深入探讨两种常用的数据结构:ArrayList和LinkedList,通过直观的比喻和实例分析,揭示它们各自的优势与局限,帮助你在面对不同的编程挑战时做出明智的选择。
|
2月前
|
存储 算法 Java
Java 中常用的数据结构
【10月更文挑战第20天】这些数据结构在 Java 编程中都有着广泛的应用,掌握它们的特点和用法对于提高编程能力和解决实际问题非常重要。
33 6
|
2月前
|
存储 Java 开发者
Java中的Map接口提供了一种优雅的方式来管理数据结构,使代码更加清晰、高效
【10月更文挑战第19天】在软件开发中,随着项目复杂度的增加,数据结构的组织和管理变得至关重要。Java中的Map接口提供了一种优雅的方式来管理数据结构,使代码更加清晰、高效。本文通过在线购物平台的案例,展示了Map在商品管理、用户管理和订单管理中的具体应用,帮助开发者告别混乱,提升代码质量。
34 1
|
2月前
|
存储 算法 Java
Java常用的数据结构
【10月更文挑战第3天】 在 Java 中,常用的数据结构包括数组、链表、栈、队列、树、图、哈希表和集合。每种数据结构都有其特点和适用场景,如数组适用于快速访问,链表适合频繁插入和删除,栈用于实现后进先出,队列用于先进先出,树和图用于复杂关系的表示和查找,哈希表提供高效的查找性能,集合用于存储不重复的元素。合理选择和组合使用这些数据结构,可以显著提升程序的性能和效率。