数据结构
文章平均质量分 88
学习过程中的笔记记录~~
IUIUStar
星星在发光~
展开
-
【数据结构】反射
反射允许对成员变量,成员方法和构造方法的信息进行编程访问。简单来说,就是可以从类中获取到成员变量,成员方法,构造方法。的class对象来描述该类的属性或者方法等。每个类的class对象有且只有一个,由JVM产生。每个类加载到JVM之后,由JVM产生这个类的class对象。Class类是反射的核心类,反射的入口。反射是非常重要的,没有反射就没有java的任何框架。我们在java中写代码IDEA会自动提示的功能也是利用了反射。参数2:覅用方法的传递参数,如果没有就不写。->当已有这个类的对象时,才可以使用。原创 2023-05-04 11:11:32 · 540 阅读 · 0 评论 -
【数据结构】JDK HashMap源码解析
两个对象的hashCode虽然返回的数值相同,但是不同的数字经过哈希函数运算完全是有可能得到相同的索引值的,因此很有可能不是同一个对象,所以equals不一定相同;这其实也就是前文说到的哈希函数设计中的稳定性,一个相同的值经过哈希函数得到的值一定是相同的,因此两个对象是一样的,经过hashCode计算得到的值一定是相同的。可以看见,在定义构造函数的时候,无论hi无参还是有参,这两种方式都并没有将数组容量进行初始化,那什么时候进行数组的初始化呢?如果是链表形式,就将该节点作为链表的最后一个节点插入。原创 2023-04-30 12:10:15 · 682 阅读 · 0 评论 -
【数据结构】哈希表
通过上述操作:将数组的具体数值转化为了新布尔数组的下标,此时要查找某个元素,在新数组中已经知道了该数组的索引下标,因此查找起来非常快。但是这样也有一个问题,就是如果我这个数组中的数据范围很分散,比如[10,100000,1000000000]这种,那我最少要创建一个1000000000+1大小长度的新数组,太不划算了。JDK中的HashMap的factor默认是0.75,而在阿里的实验室论证中,在一般的商用系统中,factor为10是比较合适的设置。比较好的方式就是n取素数,这样能显著降低哈希碰撞的概率。原创 2023-04-29 21:00:42 · 6220 阅读 · 0 评论 -
【数据结构】七大排序总结
今天学习的内容主要是七大排序方法,属于面试中经常被问到的问题😃。首先我们需要知道排序方法主要分为几类,可以看下面这张图。我们说的七大排序也是指内部排序的方式。其中,关于算法的稳定与不稳定,主要是指在排序过程中的元素位置是否发生变化。[9,2,5a,7,5b,4,3,6]在经过直接选择排序后变为[2,3,4,5b,5a,6,7,9]其中5a与5b虽然是相同的值,但是相较于开始位置,两者之间的顺序已经发生变化,所以我们说直接选择排序算法是不稳定的。原创 2023-04-30 18:21:18 · 989 阅读 · 0 评论 -
【数据结构】Map与Set的简单使用
Map和Set是专门用来进行搜索的容器或者数据结构。其中,我们一般将搜索的数据称为关键字(Key),和关键字对应的称为值(Value),所以称其为Key-Value的键值对。所以一般分为两种模型:(1)纯Key模型比如:快速查找某个姓名在不在通讯录中,快速查找某个单词在不在字典中;(2)Key-Value模型比如:统计一段文本中每个字的出现次数,要求统计结果是;那么Map中存储的就是Key-Value的键值对,而Set中存储的就是Key。原创 2023-04-06 21:30:00 · 205 阅读 · 0 评论 -
【数据结构】java对象的比较与TopK问题
java中我们最常熟知的就是基本数据类型的比较,引用数据类型:对于用户实现的自定义类型,一般默认情况下调用equal方法,比较引用变量的地址。但是equal只能按照相等进行比较,不能按照大于,小于的方式进行比较。原创 2023-04-05 22:00:00 · 307 阅读 · 0 评论 -
【数据结构】二叉搜索树BST -> 基础实现篇
二叉搜索树(Binary Search Tree)简称BST。BST主要有三个特性:(1)对于BST的每一个节点node,左子树节点值原创 2023-04-05 14:01:09 · 448 阅读 · 0 评论 -
【数据结构】二叉树非递归问题【下】
上一节简单学习了二叉树,以及递归方式来完成二叉树的遍历和高度,节点数等问题的求解。今天的主题主要是非递归方式来解决二叉树中的一些问题,个人感觉初学理解起来还是比较困难的。希望今天下午能够攻克它们!!!原创 2023-04-03 16:14:39 · 209 阅读 · 0 评论 -
【数据结构】栈(Stack)的实现
/定义一个数组//当前栈中有效元素的个数//无参构造方法:默认栈的大小this(10);//注意:这里的this就是下面的MyStack//有参构造方法。原创 2023-03-24 21:00:00 · 966 阅读 · 0 评论 -
【数据结构】队列的实现
E poll();E peek();//定义链表的头,尾E val;Node next;/*** /入队列:链表的尾插*/@Override//产生新节点//如果链表为空,此时新节点就是头和尾//如果链表不为空,此时size++;/*** /出队列:出的是链表中的头结点*/@Overridesize--;return val;/*** 查看队首元素*/@Override/*** 重写ToString方法*/@Override。原创 2023-03-24 23:00:00 · 928 阅读 · 0 评论 -
【数据结构】链表的模拟实现【上】
链表是一种在物理存储结构上非连续存储的结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。链式结构在逻辑上是连续的,在物理上不连续。对于单链表来说,每个节点不仅存储自身的值,还存储下一个节点的地址值;带头单链表就是比无头单链表多了一个头结点,我们把它叫做"虚拟头结点";对于双链表来说,每个节点存储上一个节点的地址值,自身节点的值和下一个节点的地址值。原创 2023-03-27 14:48:20 · 236 阅读 · 0 评论 -
【数据结构】链表相关OJ题【下】
链表相关OJ题原创 2023-03-27 19:45:00 · 314 阅读 · 0 评论 -
【数据结构】二叉树【上】
学习二叉树原创 2023-03-25 17:34:38 · 86 阅读 · 0 评论 -
【数据结构】动态数组的实现
动态数组的实现原创 2023-03-18 16:57:08 · 890 阅读 · 0 评论 -
【数据结构】栈, 队列, 数组,链表
数据结构(栈, 队列, 数组,链表)原创 2023-03-15 15:40:28 · 269 阅读 · 0 评论 -
LeetCode2:旋转数组
代码实现:旋转的数组~原创 2023-03-05 21:18:00 · 80 阅读 · 0 评论 -
LeetCode1:求缺失的数字
Leetode: 缺失的数字~原创 2023-03-05 19:45:34 · 151 阅读 · 0 评论 -
【数据结构】泛型的简单入门
泛型的认识原创 2023-03-04 15:00:26 · 182 阅读 · 0 评论 -
【数据结构】算法的时间与空间复杂度
时间与空间复杂度的简单分析~原创 2023-03-02 16:06:15 · 353 阅读 · 0 评论