数据结构(java)实现
文章平均质量分 85
核動力牛馬
这个作者很懒,什么都没留下…
展开
-
泛型进阶(java)
泛型是在JDK1.5引入的新的语法,通俗讲,泛型:就是适用于许多许多类型。从代码上讲,就是对类型实现了参数化。原创 2024-07-31 10:55:25 · 556 阅读 · 0 评论 -
反射、枚举、lamabda表达式
枚举主要用途:原创 2024-07-30 15:09:15 · 751 阅读 · 0 评论 -
String常量池
在.Class文件被加载时,.Class文件中的常量池被加载到内存中称为运行时常量池,运行时常 量池每个类都有一份。在Java程序中,类似于:1, 2, 3,3.14,“hello”等字面类型的常量经常频繁使用,为了。字符串常量池在JVM中是StringTable类,实际是一个固定大小的HashTable。:每个.Java源文件编译后生成.Class文件中会保存当前类中的字面常量以及符号信息。通过运行程序 s1和s2引用的是同一个对象,而s3和s4不是。原创 2024-07-29 14:50:48 · 180 阅读 · 0 评论 -
Map和Set
二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树情况1:树为空树情况2:树不为空树1. cur 是 root,则 root = cur.right2. cur 不是 root,cur 是 parent.left,则 parent.left = cur.right。原创 2024-07-27 13:55:25 · 1011 阅读 · 0 评论 -
排序(java)
1. 归并的缺点在于需要O(N)的空间复杂度,归并排序的思考更多的是解决在磁盘中的外排序问题。2. 时间复杂度:O(N*logN)3. 空间复杂度:O(N)4. 稳定性:稳定。原创 2024-07-24 20:24:07 · 896 阅读 · 0 评论 -
java对象的比较
但有些情况下该种比较就不符合题意。原创 2024-07-20 20:05:16 · 947 阅读 · 0 评论 -
优先级队列(堆)
3.1 PriorityQueue的特性Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线 程不安全的,PriorityBlockingQueue是线程安全的,本文主要介绍PriorityQueue。关于PriorityQueue的使用要注意:1. 使用时必须导入PriorityQueue所在的包。原创 2024-07-20 09:57:49 · 843 阅读 · 0 评论 -
二叉树BinaryTree
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看 起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:1.有一个特殊的结点,称为根结点,根结点没有前驱结点2.除根结点外,其余结点被分成M(M > 0)个互不相交的集合T1、T2、......、Tm,其中每一个集合Ti (1 <= i <= m) 又是一棵与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继3.树是递归定义的。原创 2024-07-15 10:39:13 · 783 阅读 · 0 评论 -
Stack和Queue
一种特殊的线性表,其进行数据插入和删除操作的一端称为栈 顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,。出栈:栈的删除操作叫做出栈。是数据结构的一种,用于存储数据;是虚拟机执行程序时使用的栈空间;是具体的函数调用所使用的栈空间,用于存储函数执行所需的信息。原创 2024-07-14 11:32:30 · 496 阅读 · 0 评论 -
LinkedList与链表
当在ArrayList任意位置插入或者删除元素时,就需要将后序元素整体往前或者往后搬移,时间复杂度为O(n),效率比较低,因此ArrayList不适合做任意位置插入和删除比较多的场景。因此:java 集合中又引入了LinkedList,即链表结构。原创 2024-07-08 18:03:54 · 381 阅读 · 1 评论 -
ArrayList与顺序表
ArrayList是一个普通的类,实现了List接口。1. ArrayList是以泛型方式实现的,使用时必须要先实例化2. ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问3. ArrayList实现了Cloneable接口,表明ArrayList是可以clone的4. ArrayList实现了Serializable接口,表明ArrayList是支持序列化的。原创 2024-06-14 15:09:51 · 591 阅读 · 0 评论 -
List的介绍
List是一个接口,继承自Collection。Collection也是一个接口,该接口中规范了后序容器中常用的一些方法。Iterable也是一个接口,表示实现该接口的类是可以逐个元素进行遍历。方法解释尾插 e将 e 插入到 index 位置尾插 c 中的元素删除 index 位置元素删除遇到的第一个 o获取下标 index 位置元素将下标 index 位置元素设置为 element清空判断 o 是否在线性表中返回第一个 o 所在下标返回最后一个 o 的下标截取部分 list。原创 2024-06-13 15:18:27 · 572 阅读 · 0 评论 -
初识泛型(Java)
泛型:就是适用于许多许多类型。原创 2024-06-11 18:16:43 · 227 阅读 · 0 评论 -
时间复杂度和空间复杂度
实际中我们计算时间复杂度时,我们其实并不一定要计算精确的执行次数,而只需要大概执行次数,那么这里我们 使用大O的渐进表示法。最坏执行了(N*(N-1))/2次,时间复杂度一般看最坏,时间复杂度为 O(N^2)算法的时间复杂度是一个数学函数,算法中的基本操作的执行次数,为算法的时间复杂度。空间复杂度为O(N)最坏执行log₂(N) 次,时间复杂度为 O(log₂(N))基本操作递归了2^N 次,时间复杂度为O(2^N )。执行了2N+10次,时间复杂度为 O(N)基本操作递归了N次,时间复杂度为O(N)。原创 2024-06-09 17:28:06 · 353 阅读 · 0 评论