![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 96
三春去后诸芳尽
月光照在路上
展开
-
【Java】反射、枚举、Lambda表达式
一、反射1 定义2 用途(了解)3 反射基本信息4 反射相关的类(重要)4.1 Class类(反射机制的起源 )4.1.1 Class类中的相关方法(方法的使用方法在后边的示例当中)4.2 反射示例4.2.1 获得Class对象的三种方式4.2.2 反射的使用5、反射优点和缺点6 重点总结二、枚举的使用1 背景及定义2 使用3 枚举优点缺点4 枚举和反射4.1 枚举是否可以通过反射,拿到实例对象呢?5 总结三、Lambda表达式1 背景1.1 Lambda表达式的语法1.2 函数式接口2 Lambda表达.原创 2022-03-01 15:01:22 · 2779 阅读 · 4 评论 -
【Java数据结构】Map与Set、搜索树、哈希表
搜索树二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树5.2 操作-查找public Node search(int val) { if(root == null) { return null; } Node cur = root; ...原创 2022-02-27 15:41:18 · 3902 阅读 · 10 评论 -
【排序算法】插入、选择、堆排、快排、归并、计数
排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。平时的上下文中,如果提到排序,通常指的是排升序(非降序)。通常意义上的排序,都是指的原地排序(in place sort) 。- **稳定性(重要)**两个相等的数据,如果经过排序后,排序算法能保证其**相对位置不发生变化**,则我们称该算法是具备稳定性的排序算法。一个稳定的排序,可以实现为不稳定的排序但是一个本身就不稳定的排序,是不可以变成稳定的排序原创 2022-02-25 19:45:53 · 4233 阅读 · 22 评论 -
泛型:了解泛型与通配符
一、引出泛型1、什么是泛型:一般的类和方法,只能使用具体的类型: 要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大。----- 来源《Java编程思想》对泛型的介绍。泛型是在JDK1.5引入的新的语法,通俗讲,泛型:就是适用于许多许多类型。从代码上讲,就是对类型实现了参数化。2、代码测试实现一个类,类中包含一个数组成员,使得数组中可以存放任何类型的数据,也可以根据成员方法返回数组中某个下标的值?思路:我们以前学过的数组,只能存放原创 2022-02-22 17:02:42 · 4190 阅读 · 21 评论 -
优先级队列(堆)、java 对象的比较
1、二叉树的顺序存储1.1 存储方式使用数组保存二叉树结构,方式即将二叉树用层序遍历方式放入数组中。一般只适合表示完全二叉树,因为非完全二叉树会有空间的浪费。这种方式的主要用法就是堆的表示1.2 下标关系已知双亲(parent)的下标,则:左孩子(left)下标 = 2 * parent + 1右孩子(right)下标 = 2 * parent + 2已知孩子(不区分左右)(child)下标,则:双亲(parent)下标 = (child - 1) / 22、堆 heap堆逻辑上是原创 2022-01-31 14:45:49 · 3837 阅读 · 7 评论 -
【Java 数据结构】二叉树的遍历和基本操作
一、树型结构1、概念2、树的表示形式二、二叉树1、特点2、两种特殊的二叉树3、二叉树的性质一、树型结构树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:有一个特殊的结点,称为根结点,根结点没有前驱结点除根结点外,其余结点被分成M(M > 0)个互不相交的集合T1、T2、…、Tm,其中每一个集合 Ti (1 <= i<= m) 又是一棵与树类似的子树.原创 2022-01-23 10:56:04 · 3173 阅读 · 26 评论 -
【Java数据结构】栈和队列
一、 栈(Stack)1、概念栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据在栈顶。栈的特点是 先进后出Java虚拟机栈:JVM stack 是JVM中的一块内存,调用函数的时候,在JVM stack 开辟一块内存,叫做栈帧2、入栈和出栈的顺序一个栈原创 2022-01-17 17:41:20 · 6916 阅读 · 23 评论 -
【顺序表和链表】实现增删查改数据结构 OJ题编程
线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储1、顺序表顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改为什么不直接用数组:写到类里,以后就可以面向对象使用顺序表MyArray原创 2021-11-07 16:22:01 · 3940 阅读 · 15 评论 -
集合框架及背后的数据结构、Collection,Map、ArrayList的使用
如果ArrayList调用,不带参数的构造方法,那顺序表的大小0,第一次add时,整个顺序表才变为了10当这10个放满了,开始扩容,以1.5倍的方式扩容 如果调用的是给定容量的构造方法,顺序表的大小就是你给定的容量,放满了还是以1,5倍进行扩容原创 2021-12-01 18:03:47 · 3956 阅读 · 32 评论