java学习之高级语法(九)----- 数据结构

简介: java学习之高级语法(九)----- 数据结构

这里主要了解java中和集合相关的数据结构,只是简单了解一下这些常见的数据结构,不作过于深入的学习。

数据存储常用的结构有:栈、队列、数组、链表和红黑树。

栈:也称堆栈,只允许在同一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。

栈的特点:(1)先进后出

                 (2)栈的入口、出口都是栈顶

                 image.gif编辑

压栈:存元素,即把元素存储到栈的顶端位置,栈中已有元素依次向栈底方向移动一个位置。

弹栈:取元素,即把栈的顶端位置元素取出,栈中已有元素依次向栈顶方向移动一个位置。

队列

队列:简称队,只允许在表的一端进行插入,而在表的另一端进行删除。

队列的特点:(1)先进先出(就像火车过隧道一样)

                    (2)队列的入口、出口各占一侧

                    image.gif编辑

数组

数组:是有序的元素序列,数组是在内存中开辟一段连续的空间,并在此空间存放元素。

数组的特点:

     (1)查询快

            数组的地址是连续的,通过数组的首地址可以找到数组,通过数组的索引可以快速查找某一个元素

     (2)增删慢

            数组的长度是固定的,想要增加或者删除一个元素必须要创建一个新数组,把原数组的数据复制过来

链表

链表:是由一系列节点node组成,一个节点包含了一个数据域(存储数据)和两个指针域(存储地址)。

链表分为:单向链表 、双向链表

     (1)单向链表:链表中只有一条链,不能保证元素的顺序(存储元素和取出元素的顺序有可能不一致)

     (2)双向链表:链表中有两条链,有一条链是专门记录元素的顺序,是一个有序的集合

链表的特点:(1)查询慢

                              因为链表中的地址不是连续的,每次查询元素都必须从头开始查询

                     (2)增删快

                               因为链表结构增加或者删除一个元素对链表的整体结构没有影响,所以增删快

                               增加元素:只需要修改连接下个元素的地址即可

                               删除元素:只需要修改连接下个元素的地址即可

红黑树

二叉树:每个节点上最多只能有两个子节点的有序树,顶上的叫根节点,两边被称为“ 左子树 ” 和 “ 右子树 ”

                 image.gif编辑

这里说的红黑树是一种特殊的二叉树,它本身就是一颗二叉查找树,将节点插入后,该树仍然是一颗二叉查找树。

红黑树的约束:

                   (1)节点可以是红色或者黑色的

                   (2)根节点是黑色的

                   (3)叶子节点(指空节点)是黑色的

                   (4)每个红色节点的子节点都是黑色的

                   (5)任何一个节点到其每一个叶子节点的所有路径上黑色的节点数相同

红黑树的特点:查询速度快,趋近于平衡树,查询叶子节点最大次数和最小次数不能超过2倍。

相关文章
|
26天前
|
Java 调度 开发者
Java线程池ExecutorService学习和使用
通过学习和使用Java中的 `ExecutorService`,可以显著提升并发编程的效率和代码的可维护性。合理配置线程池参数,结合实际应用场景,可以实现高效、可靠的并发处理。希望本文提供的示例和思路能够帮助开发者深入理解并应用 `ExecutorService`,实现更高效的并发程序。
33 10
|
29天前
|
Java 数据库连接 数据库
【潜意识Java】深度分析黑马项目《苍穹外卖》在Java学习中的重要性
《苍穹外卖》项目对Java学习至关重要。它涵盖了用户管理、商品查询、订单处理等模块,涉及Spring Boot、MyBatis、Redis等技术栈。
77 4
|
29天前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
30 4
|
29天前
|
存储 移动开发 算法
【潜意识Java】Java基础教程:从零开始的学习之旅
本文介绍了 Java 编程语言的基础知识,涵盖从简介、程序结构到面向对象编程的核心概念。首先,Java 是一种高级、跨平台的面向对象语言,支持“一次编写,到处运行”。接着,文章详细讲解了 Java 程序的基本结构,包括包声明、导入语句、类声明和 main 方法。随后,深入探讨了基础语法,如数据类型、变量、控制结构、方法和数组。此外,还介绍了面向对象编程的关键概念,例如类与对象、继承和多态。最后,针对常见的编程错误提供了调试技巧,并总结了学习 Java 的重要性和方法。适合初学者逐步掌握 Java 编程。
52 1
|
2月前
|
存储 缓存 安全
Java 集合江湖:底层数据结构的大揭秘!
小米是一位热爱技术分享的程序员,本文详细解析了Java面试中常见的List、Set、Map的区别。不仅介绍了它们的基本特性和实现类,还深入探讨了各自的使用场景和面试技巧,帮助读者更好地理解和应对相关问题。
60 5
|
2月前
|
Java
java do while 的语法怎么用?
java do while 的语法怎么用?
64 3
|
3月前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
数据结构与算法系列学习之串的定义和基本操作、串的储存结构、基本操作的实现、朴素模式匹配算法、KMP算法等代码举例及图解说明;【含常见的报错问题及其对应的解决方法】你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
|
3月前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
69 6
|
3月前
|
存储 Java 索引
Java中的数据结构:ArrayList和LinkedList的比较
【10月更文挑战第28天】在Java编程世界中,数据结构是构建复杂程序的基石。本文将深入探讨两种常用的数据结构:ArrayList和LinkedList,通过直观的比喻和实例分析,揭示它们各自的优势与局限,帮助你在面对不同的编程挑战时做出明智的选择。
|
3月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。