自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 实现简易LinkedList

Java 中的 LinkedList 相对于 ArrayList 使用的频率比较小,它实现了java.util.List 接口, 虽然它与ArrayList都实现了该接口但是内部实现差异非常大,LinkedList内部是用链表实现的,这就决定了LinkedList的随机访问操作非常低效,时间复杂度为O(n);单次插入效率为O(1), 但是每插入一次都要伴随着一次查找,所以单次插入效率同样低下,但是如果用ListIterator连续做插入操作则效率很高。在头部和尾部做访问和插入操作效率都很高,基于这个原因可

2020-11-15 22:54:28 120 1

原创 实现简易ArrayList

Java 中的 ArrayList 可以说是使用频率最高的容器类实现,它实现了java.util.List 接口,实现这个接口的还有一个相对来说使用比较少的LinkedList, 虽然接口相同但是内部的实现还是有很大差异的,具体来说ArrayList正如它的名称所示内部是用数组来实现的,这就决定了ArrayList的随机访问操作非常高效,时间复杂度为O(1), 但是也因为这个原因其随机插入效率很差为O(n), 在末尾插入元素则是例外。具体实现简单来说就是初始化一个数组,随着元素的插入和容量不够或即将不够使进

2020-11-15 22:21:33 125

原创 寻路算法--迷宫寻路

该篇文章接上篇并查集应用——生成随机迷宫, 此时已经可以生成一个任意大小的生成的迷宫       但是看起来还缺点什么,对,就是路径,没有路径怎么证明这真的是个迷宫,因此现学现用把路径加上。首先寻路算法属于图论算法,要想寻路先得有图,什么是图,这个就不细讲了,很多专门讲这个的文章,简单的说图就是一些点再加上连接这些点的边就构成了图,只要把迷宫抽象成图就能应用图论算法了。     .

2020-08-18 12:15:13 3093 2

原创 java覆盖equals注意事项

覆盖equals方法须要遵守通用约定:这里需要重点关注的情况是: 子类继承父类并且扩展了新的比较字段时,稍有不慎就会违反对称性或者传递性。如图,如果是 父类.equals(子类) 的情况,父类是看不到字段3的,这时如果进行比较一定是返回 true, 但是反过来 子类.equals(父类) 有两种情况:第一种情况是返回 false, 这种情况就违反了对称性。第二种情况是返回 true,这种情况符合对称性,但是违反了传递性以上的情况中,父类中一般都是这样实现的 class Point

2020-08-09 21:49:12 357

原创 关于java字符串 “ab” + “cd“ 创建了几个对象

关于 String s = “ab” + “cd” 创建了几个字符串对象,首先前提是在程序其他地方没有涉及"ab"、“cd”和“abcd”的字面量以及拼接操作。如果关注过此类问题应该会知道这句代码只会产生一个"abcd"对象,不会产生“ab”、“cd”字符串对象,那么怎么证明呢。第一种方式可以通过javap工具产生类的字节码来查看,首先先上出测试代码import java.util.Scanner;public class StrTest1 { public static void main(St

2020-08-02 18:23:32 1277

原创 并查集应用——生成随机迷宫

    在读《数据结构与算法分析Java语言描述一书中》,在并查集章节的最后,作者给出了一个并查集的应用:生成随机迷宫此处作者给了思路,但是没有给出任何代码,所以自己实现了出来,先上最终效果图:页面是用的thymeleaf,用表格实现,方块区域与墙壁都是一个单元格,后端准备好样式直接在页面显示。首先先造一个没有路的迷宫:相关代码:public class Item {//元素所在索引private Integer index;//元素宽度pri

2020-07-29 12:39:34 989

原创 Java Heap Pollution

当Java 泛型和可变参数配合使用时IDE会给出该警告:***Type safety: Potential heap pollution via varargs parameter args***,字面意思潜在的堆污染,不太能理解什么意思,百度一下没有找到好的解释,遂查阅Java相关文档和stackoverflow, 再结合自己的思考得出了自己的看法。...

2020-07-19 17:36:02 877

原创 Python字符编码

在编写Python程序时经常会遇到乱码问题,如果搞不清楚编码问题就会晕头转向,如果搞清楚编码问题就会迎刃而解。首先什么是字符编码,我们知道计算机中存储的数据都是0和1,显然不能把字符存进去,因此就把字符和数字对应起来,用数字代替字符存到存储介质中,而数字与字符的映射关系就是编码表。美国人最先制定了ASCII编码表,里面定义了字母、数字和其他一些常用字符的编码,编码数字范围为0~127。但是问题来了

2017-12-23 23:36:51 320

原创 关于Python中的import(三)

上节介绍了 importlib.import_module(),和 package 的基础概念,本节深入理解导模块的机理以及简单了解 Namespace package在 import 模块的时候,系统会首先到 sys.modules 里面去查找要导入的模块,sys.modules 是个什么东东呢,我们打印一下看看它是什么:import sysprint(type(sys.modules)) #

2017-12-22 13:48:18 331

原创 关于Python中的import(二)

上节简单说了 import 系统 和 __import__ 函数, 这节大概说下 importlib 中的 import_module, 和 package 相关的东西。importlib.import_module(name, package=None) name 是需要导入模块的名称,可以以相对或绝对方式导入;绝对方式是写上模块的绝对包路径,例如要导入 pkg 下的 module 模块,可以

2017-12-20 13:23:57 828

原创 关于Python中的import(一)

在写Python的代码时,经常要导入模块,Python 的 import 语法和其他语言相比比较特别,在使用过程中有些地方也需要注意,遂根据官方文档了解了下import 系统,有助于理解Python的机制我们平时用的最多的导模块方式是通过 import statement, 比如说我们要导入内置 time 模块,我们会这样:import time如果需要导入 package 下的模块, 需要:im

2017-12-20 09:47:50 563

原创 Python作用域总结

Python特有的语法规则和诸如Java等其他静态类型语言有很大不同,而作用域规则则是其一,初识Python会遇到一些问题,现在对Python作用域相关的知识做个总结。Python作用域规则一句话概括就是 LEGB 规则; L 代表 Local、E 代表 enclosing、G 代表 Global、B 代表 Builtin作用域由 Python 的代码文本决定,一个模块定义了一个 Global 作

2017-12-19 22:48:35 415

原创 关于Unity坐标系转换

transform.TransformPoint:将坐标点由局部坐标系转换到世界坐标系。transform.InverseTransformPoint:将坐标点由世界坐标系转换到局部坐标系。transform.TransformDirection:将向量由局部坐标系转换到世界坐标系。transform.InverseTransformDirection:将向量由世界坐标系转换到局部

2017-05-04 14:49:22 846 1

原创 Unity 求两个向量间夹角

在学习Unity官方案例时,发现其中用了两种求物体XZ平面旋转夹角的方法:      方法1:float angle = Vector3.Angle (fromVector, toVector); //求出两向量之间的夹角Vector3 normal = Vector3.Cross (fromVector,toVector);//叉乘求出法线向量angle *= Mathf.Sig

2017-05-01 18:12:04 51984 1

原创 Unity输入控制

Unity 中,使用 Input 类获取用户输入,记录下常用的函数及注意事项。键盘输入:Input.GetKeyDown(KeyCode key) 获取指定按键被按下的事件,直到松开按键再次按下,才能获取第二次输入。其中参数 key 与物理按键对应,例如KeyCode.A 代表键盘上的 ‘A’ 键,KeyCode 与 物理按键的映射是无法改变的。      Input.GetKeyUp

2017-04-25 21:11:12 7148

原创 Unity脚本事件执行

Unity提供了许多系统事件调用函数,每个事件函数都有各自的调用时机,清楚这些函数的特点及作用,可以使我们在编写Unity脚本时,做到心中有数,避免错误。先来张Unity官方文档里给出的事件图:

2017-04-25 17:13:50 768

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除