
如何在 Java 中实现无向环和有向环的检测
摘要:无向环 一个含有环的无向图如下所示,其中有两个环,分别是 0-2-1-0 和 2-3-4-2: 要检测无向图中的环,可以使用深度优先搜索。假设从顶点 0 出发,再走到相邻的顶点 2,接着走到顶点 2 相邻的顶点 1,由于顶点 0 和顶点 1 相邻,并且顶点 0 被标记过了,说明我们饶了一圈,所以无向
阅读全文

如何在 Java 中实现二叉搜索树
摘要:二叉搜索树 二叉搜索树结合了无序链表插入便捷和有序数组二分查找快速的特点,较为高效地实现了有序符号表。下图显示了二叉搜索树的结构特点(图片来自《算法第四版》): 可以看到每个父节点下都可以连着两个子节点,键写在节点上,其中左边的子节点的键小于父节点的键,右节点的键大于父节点的键。每个父节点及其后代节
阅读全文

如何在 Java 中实现堆排序算法
摘要:算法描述 堆排序算法的描述如下: 将待排序的数组调整为最大堆,此时未排序的长度 N 为数组的长度,调整的过程就是倒序将数组的前 N/2 个元素下沉的过程,每次下沉都会将较大的元素带到上面,最终将数组变为最大堆; 弹出最大堆的堆顶元素并将其移动到数组的最后面,将原本最后面的元素放到堆顶,然后将未排序的
阅读全文

如何在 IDEA 中配置 Easy Code 的 MybatisPlus 实体类模板
摘要:前言 Easy Code 是一个很强大的插件,可以根据数据库的表结构生成对应的实体类、Mapper 接口等代码,省去了编写没有技术含量的代码的工作,极大提升敲代码的效率。但是如果仅仅使用预置的模板可能无法满足我们的需求,这时候就可以自己去定制模板。下面给出实体类的模板。 实现流程 我们希望实体类满足
阅读全文

如何在 IDEA 中添加 Maven 项目的 Archetype(解决添加不起作用的问题)
摘要:前言 在 IDEA 中点击新建 Maven 模块,会发现他已经为我们罗列出来了许多的 archetype,但有些时候满足不了我们的需求。下面就来看看如何添加自己的脚手架吧。 实现过程 新建模块 在 IDEA 中新建一个模块,需要保证每个目录下都至少有一个文件,不然打包的时候那个文件夹会被忽略掉,这里
阅读全文

如何在 VS Code 中为 Java 类生成序列化版本号
摘要:前言 IDEA 提供自动生成序列化版本号的功能,其实 VS Code 也可以,只是默认关闭了这个功能,下面就来看看如何开启这个功能吧。 配置过程 首先需要保证 VS Code 上安装了提供 Java 语言功能的拓展: 然后我们在项目文件夹下新建一个 .settings 文件夹,新建之后这个文件夹可能
阅读全文