- 博客(17)
- 收藏
- 关注
原创 双指针算法——滑动窗口
滑动窗口本质上也是利用双指针来解决特定情况下的问题。滑动窗口算法思想是通过俩个指针,定义在左边和右边,俩指针同向运动,保持着一个像“窗口”一样的双指针来不停的压缩或者扩展来移动“窗口”,从而找到特定的子数组。
2024-06-24 12:54:24
1090
7
原创 双指针算法
该算法涉及到使用俩个指针来来遍历数组,通过俩个指针的协调工作,能大大的提高代码效率,有效的减少时间复杂度,提高代码性能。双指针算法包括快慢指针,前后指针,或者可以搭配单调性来很好的解决问题。本文将利用Java语言来实现双指针的常见题型。
2024-06-18 22:38:06
820
8
原创 ArrayList——简单洗牌算法
该语法情况比较特殊,相当于一个“二维数组”存着一个个线性表的结构,如图:该语法的灵活性强,可适用于多种类型和多种情况。接下来就使用该语法来实现一个简单的洗牌操作。
2024-06-06 22:44:06
863
9
原创 java——顺序表
顺序表是线性表的一种,它是较于数组更加灵活的一种储存方式。线性表通常是逻辑上是连续的一条直线,但在物理上不是连续的。java中已经实现好了一个顺序表,搭配泛型可以支持各种类型的使用,下面就来介绍该如何使用。
2024-06-06 16:56:09
891
3
原创 JAVA——异常
先来看异常的内部是如何实现的:可以看到,一路调用父类来执行抛出异常的操作,而形参为String类(填写错误信息)我们可以模仿使用继承来选择异常为运行时异常还是编译时异常,然后内部调用super,传入一个形参,则如下实现://登录//用户名异常//密码异常//自定义异常实现登录//抛出异常错误if(!throw new NameException("用户名错误!");if(!throw new PasswordException("用户密码错误!");
2024-06-03 12:34:39
888
8
原创 String类详解
由图可知道,String类的字符由value数组所进行维护,无法修改。所有涉及到可能修改字符串内容的都是创立一个新的对象,改变的是新对象,原有的字符串无法改变,如我们使用replace方法:可以看到,这个替换只是创建了新的对象,并没有真正的改变。如果真要改变字符串,可以直接这样:
2024-05-30 15:48:50
979
13
原创 Object——toString方法和equals方法
在java中,所有类都是有继承关系存在的,都默认继承Object类。当一个类继承了其他父类,它并不会直接继承Object类,但是它的父类若是没有其他继承关系也会默认继承Object类,子类也可以继续调用Object类。由图可知,原先的方法是类名 + “@”+ 地址组成的(内部实现可自行查看,按住ctrl+点击),我们通过了重写的方法使得他能够打印出整个对象。Object类提供着许多方法,但是这些方法在开发过程中往往不能满足程序员想要的功能,一般会对Object类的方法进行重写,以满足功能开发的多样性。
2024-05-27 11:54:04
357
6
原创 Object——Clonable接口(深浅拷贝)
Object提供了一个拷贝方法,用于重新创建出一个数据一样的对象或者数据的副本。拷贝的意义在于节省创建对象的成本,避免原对象的数据修改。
2024-05-23 15:53:14
325
5
原创 用接口模拟实现排序方法
如果int能和int进行比较,那么student类能和student类进行比较嘛?答案是不能直接比较的,因为编译器不确定是通过什么方法比较,比如让sort方法进行排序,编译器会报错那我们该如何使其能成功比较并且排序呢?
2024-05-22 19:46:26
392
8
原创 JAVA——接口
关键字:interface(用于定义接口)关键字:implements(用来实现接口)接口的定义方式与类的定义方式类似,只需吧class换成interface即可语法格式:interface 接口名称{//抽象方法。。。类要想使用接口,则通过implements来实现接口,并且重写接口的所有抽象方法(子类与父类为extends继承关系,类与接口是implements实现关系)语法格式:class 类名 implements 接口名称{//重写的抽象方法。。。接口的实用代码实例:
2024-05-22 15:10:16
1726
10
原创 JAVA——抽象类
被abstract修饰的类被称为抽象类,被修饰的方法称为抽象方法,抽象方法不用给出具体实现(即无方法体)抽象类中可以有其他的普通方法,也可以有属性和构造方法。但是一个类当中如果有抽象方法,那么这个类必须是抽象类,抽象类不能被实例化对象!
2024-05-20 23:42:58
171
5
原创 JAVA——多态
多态是面向对象编程的一个重要特性,实现方式主要体现在重载和重写,以及接口的实现。多态的出现使得调用者对类的使用成本降低,可降低代码的“圈复杂度”,避免使用大量的if-else,可扩展能力强。
2024-05-20 19:10:50
1042
4
原创 JAVA——继承
继承是java的面向对象编程的四大基本特性之一,合理的使用继承,能大大提高程序的开发效率,有效的减少代码的冗杂和重用,让使用者的代码更加清晰并且易于管理。可能有人会想:继承是什么?为什么需要继承?下面就来由我一一解答吧。(1)概念继承机制:它允许程序员在保持原有的类的特性的基础上进行扩展,延伸增加新功能,专门用来进行共性抽取,实现代码复用。
2024-05-20 11:42:41
1001
4
原创 JAVA类和对象
我们知道,java中已经提供了很多现成的类供我们使用,如Scanner类是java中提供的用于扫描输入文本的实用程序类,这个类存在于java.util这个包中,使用import语句如上图一样导入我们的包。static成员是静态成员,静态成员不属于任何的单个实例,而是属于类,被static修饰的成员只有一份,存在方法区(静态区),不属于某个具体的对象,是所有对象。编译器里自带的toString方法是用来打印对象地址的,然后我们给定一个方法toString,调用这个方法的重写打印对象,所以打印出来的就是对象。
2024-05-16 14:53:02
626
4
原创 基础版扫雷游戏的流程
用来统计mine数组被选择坐标(x,y)周围雷的个数,因为都是字符‘0’或字符‘1’,此时需要用到ARCll码值进行计算,俩者相差1,通过周围八个坐标和八个字符‘0’的arcll码值的差来返回。打印show棋盘,行和列的数组打印方式,11*11,外围一圈为空格(不打印),其余全部为‘*’(9*9),再打印显示的行和列。排查9*9里的mine棋盘的雷,需要用到布雷棋盘和显示棋盘,布雷棋盘(mine)隐藏操作,判断雷的位置,显示棋盘(show)显示周围有几个雷,此时需要统计,用到函数GetMineCount。
2023-12-15 14:33:32
963
9
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人