- 博客(23)
- 收藏
- 关注
原创 数据结构——哈希表(Java)
数组优点在于查找和访问容易,通过下标就可以直接访问,链表的优点在于增删元素容易,只要改变指针指向就能达到增删的效果,而哈希表就集合了数组和链表的优点,在数组中存入链表,这样既能方便访问,又能方便增添和删除元素。下面手写一个哈希表
2025-01-19 20:53:49
177
原创 数据结构——链表(Java)
1.动态大小:链表的大小可以根据需要动态增长或缩小,不需要像数组那样预先定义固定的大小。2.元素访问:链表不提供像数组一样的随机访问能力。访问链表中的元素通常需要从头结点开始遍历。3.插入和删除操作:在链表中插入或删除元素通常比数组更快,特别是对于不是在链表末尾的操作,而数组进行增删元素,尤其是增添元素,会面临扩容问题,然后复制原数组到新数组。4.内存使用:链表的内存使用效率可能低于数组,因为除了存储数据外,链表的每个元素还需要额外的空间来存储指向下一个(及可能的上一个)元素的指针。
2025-01-19 19:30:47
293
原创 数据结构——动态数组(二)(Java)
为了实现动态数组存入内容多样性,要用到泛型,要实现一个泛型动态数组,我们首先需要定义一个泛型类,使用尖括号来表示泛型(限制必须是同类型的数据才能放同一个集合对象(形参)),常用用泛型符号:E K V T... 确定泛型数据类型是必须用引用类型。然后,我们需要定义一个内部的数组来存储元素,由于Java不支持直接创建泛型数组,我们需要使用Object类型的数组,并在合适的地方进行强制类型转换。此外,我们还需要定义两个变量来记录数组的长度和元素的个数,分别为len和size。3.指定位置添加数据。
2025-01-12 23:34:40
150
原创 数据结构——动态数组(一)(Java)
我们在学习和使用中,经常要对数组元素进行:增 删 查 改 等操作,所以普通数组明显无法实现,就需要用到动态数组。1.数组是用来存储一组有序的数据的容器。2.数组中存储数据的地址是连续的。3.数组中存储数据的类型是一致的。4.数组一旦创建、长度不可改变。1.创建动态数组并给定初始长度。3.在指定位置添加数据。4.删除指定位置数据。6.获取数据获取长度。
2025-01-12 22:36:05
213
原创 入手多线程第二站-生产消费模型(Java)
5.界面主控类:创建一个共享队列对象(java.util.ArrayList 类,可理解为一个变长数组),传给鼠标监听器对象、传给上面的移动线程对象、绘制线程对象 并启动这两个线程对象。1.子弹类,封装了自己的绘制、移动策略,将在鼠标松开进创建,存进共享队列。以上两个线程共享存放小球的队列,鼠标每点击一次,就向队列中存入一个小球。4.鼠标监听器类:响应鼠标松开事件时,创建子弹对象,存进共享队列。第 4: 鼠标监听器类,在界面上松开时,创建一个子弹对象放入队列。第 2: 编写画子弹的线程,代表生产者类。
2024-07-28 23:04:47
187
原创 上手多线程(Java)用多线程,就能让图画动起来!
是指定窗口的关闭操作的代码。让线程休眠5毫秒,注意单位,用来控制绘制速度,使得绘制的过程可以观察到,真正实现动画效果。最后的代码catch (Exception ef) {}用于异常处理,没有具体的处理逻辑。1.继承 Thread 类,重写 run 方法。3.启动时,调用线程对象的 start()2.线程工作代码在 run 方法中写。变量,这样就确定了初始的圆绘制位置。如下,教大家实现一个简单的多线程项目。范围内的随机整数,分别赋值给。点击按钮后会启动一个新的线程。,用于生成随机数,使用。
2024-07-28 22:52:24
552
原创 构造方法&方法重载&继承&方法重写
2: 构造方法多用于初始化一个对象: 比如给对象的属性赋值 调用需要提前执行的方法。构造方法: 没继承 但是子类创建对象在调用自己的构造方法之前会将父类的构造方法调用。使用构造方法可以将赋值的代码提前写好,之后创建对象时,只需要给值就可以了不需要。子类中重写父类的方法,进行扩展改造方法体 ,但是保持与父类方法的格式一致。子类如果重写了父类的方法,子类中以及子类对象会优先调用重写之后的方法。关键字,在子类中指代父类 可以调用父类的属性 方法以及构造方法。子类重写方法之后还是需要调用父类的方法时,可以使用。
2024-04-10 20:01:50
402
1
原创 什么是封装
将对象的属性和行为封装起来,载体是类,类对客户隐藏实现细节,这就是封装思想。封装保证了类内部数据结构的完整性,使用户不能轻易地直接操作类的数据结构。通过不受限制的权限修饰的方法,对本类中受限制的属性和方法进行访问(赋值 调用)可以使用受限制的访问权限修饰符对类中的属性以及方法进行修饰。: 受保护的 可以同包下去使用,不同包中只有子类中可以使用。个字符之间,不能使用数字开头,不能使用标点符号。封装让写的代码更方便,更简单的去使用。,其他类中,不同包中,不能直接调用。: 私有的 只能在本类中使用。
2024-04-10 19:26:27
390
1
原创 手把手教会你使用Java原生指令编译并运行一个程序
我们可以使用哪些方式编写以及运行一个Java程序?只要涉及到编译与运行都离不开JDK如果只是编写一个Java程序 仅仅需要一个记事本就足够了,如果对JDK不太了解,请参考我的上一篇博文,当你安装好JDK后,我将从配置Java环境变量开始教你使用Java原生命令javac以及Java实现编译并运行程序。配置环境变量:1.环境变量:是一个文档,文档中存储了软件安装位置与名称首先复制JDK安装的bin目录:比如:"C:\Program Files\Java\jdk-17\bin"
2024-03-23 22:41:51
5414
4
原创 数据结构——栈(C++)
栈是一种具有特定操作规则的数据结构,类似于我们日常生活中的堆叠物品的行为。栈遵循“后进先出”(Last In First Out,LIFO)的原则,即最后放入的元素会最先被取出。举个例子:栈的存储方式可以想象成一摞叠在一起的盘子,我们将新的盘子叠在上面。当我们需要取出盘子时,由于栈是“后进先出”的,因此我们只能从最上面取盘子,也就是最后放入的盘子。
2024-03-13 00:09:26
378
原创 数据结构——链表(C++)
链表是一种基本的线性数据结构,它由一系列节点组成,每个节点包含数据和对下一个节点的引用。链表的每个节点都有一个存储数据的字段和一个指向下一个节点的指针。链表的起始节点称为头节点,指向第一个数据节点的指针称为头指针。链表的最后一个节点没有指向其他节点的指针,称为尾节点。链表的主要优点在于它的动态特性和灵活性。与数组不同,链表不需要预先分配固定大小的存储空间,它可以在运行时根据需要动态地添加或删除节点。这使得链表在处理动态变化的场景中非常有用。
2024-03-06 00:44:51
1137
1
原创 继承 extends
f.若子类继承父类的方法,但是父类的某个方法不满足子类的需求 ,子类可以通过重写方法 改造继承来的方法 从而变成一个子类特有的方法 ,只是逻辑特有名字还是一样的。a.人类包含学生类,学生类包含中学生类 大学生类,像这样,学生类就可以作为中学生类和大学生类的父类。:游戏 王者荣耀很多英雄角色 ,每个英雄角色都有属性 ,大部分的属性相同,使用继承可以少写很多代码。e.子类中重写了父类的方法,那么就不会调用继承的方法,而是调用子类自己重写的方法。c.再写一个中学生类,继承学生类属性,添加中考分数属性。
2023-07-30 19:07:35
112
1
原创 数字炸弹小游戏
4:在 GameUI 创建一个对象 GameListener 添加给按钮对象。输入数字 点击按钮 : 进行判断 ,判断完成弹出一个窗体,显示提示信息。3: 将ActionListener 中的方法复制我们自己的类中。3.若猜中,开始新一轮游戏,反之,再由下一个人猜,直至猜中。2.第一个人猜一个数,系统判断 猜大了,猜中了,猜小了。1: 创建一个新的类 GameListener。获取文本框中用户输入的数字,进行比较。b.输入炸弹数字,计数标识,布尔标识。用于接收用户输入的文本框的地址。
2023-07-26 18:02:04
431
2
原创 数组与冒泡排序
1:获取数组中的元素: 数组名[下标] arr[0] int n = arr[2];变量: int i=10 i 就是一个整数型变量 i 只能存储一个值。2: 修改数组中的元素: 数组名[下标] = 值 arr[0] = 10;语法: 1: 数据类型[] 数组名 = new 数据类型[数组长度];2: 数据类型[] 数组名 ={值1,值2,值3,值4,值5};3: 获取数组的长度: 数组名.length arr.length。1: 获取数组的长度: 数组名.length。基本数据类型: 8个。
2023-07-25 21:36:46
85
原创 颜色按钮与数组(画板完善)
如 : String[] strs = {"直线","矩形","圆形","实心矩形","实心圆形","等腰三角形","三角形","多边 形","签字笔","橡皮擦"};三角形: 三个点: 第一个点: 点击 获取 x3 y3 第二个点: 点击 获取 x4 y4 与第一个点连线 第三个点: 点击 获取 x5 y5 与前两个点都连线。: 数据类型[ ] 数组名 ={元素1,2,3,4,5,6};按钮特别多,一个按钮至少需要 3行代码,所以要用到数组。操作数组中的数据: 下标。颜色按钮: 只有颜色不同。
2023-07-25 21:22:22
81
原创 画图界面开发
方法,将 DrawListener对象传入,以上就实现了界面与鼠标监听。4:新建Java class 创建一个DrawListener类。在鼠标操作之后使用,在监听中创建一个。:在每个方法中都写一句输出语句 (用于测试)注:画笔与窗体对象绑定,需要通过窗体对象获取。对象 设置标题 尺寸 关闭方式 可视化。4:创建一个程序入口 ,在程序入口创建。利用鼠标按下和松开的坐标 以及绘制。功能 绘制出想要的图形 如:矩形。接口中的方法 (五个 )方法,用于初始化窗体。3:创建JFrame。
2023-07-16 15:56:47
105
原创 界面+监听详细实现步骤:
b 在登录界面类中 创建一个方法,用来编写开发界面的代码 取名为showUI,在哪里调用?-程序入口中 使用LoginUI 创建一个对象调用 c 界面开发部分: a创建窗体对象JFame b设置窗体标题 c设置窗体尺寸 d设置窗体关闭操作 e设置可视化 f创建流式布局管理器 g设置布局管理器给对象 h创建按钮对象 i添加按钮 j设置可视化
2023-07-15 23:05:10
82
原创 实现给按钮添加点击之后要执行的代码
e: 动作事件对象 包含了当前点击的这个按钮的文本信息。3: 这个方法本来是一个空方法,需要我们自己来实现内容。方法 方法中写上输出语句 用来判断是否有反应。根据获取的文本 采用条件语句 做判断实现分支。2: 按钮如果被点击 就会执行。在可视化之后,使用按钮对象调用。1: 监听按钮是否被点击了。获取所点击按钮的文本。方法添加 监听器对象。
2023-07-11 20:13:17
220
原创 Java界面开发
窗体 按钮 菜单 输入框 滑杆 尺寸 位置 颜色 字体 布局 文本 图片等可视化部分: 窗体 按钮 菜单 输入框 滑杆元素属性部分: 位置 颜色 字体 布局数据部分: 文本 图片Java源代码: 以不同的模块和包区分java.awt早期的界面开发包,功能简单样式不美观,不使用其中的可视化类 ,使用其中的元素类后来升级的界面开发包: 可视化类和元素类都可以使用在使用开发包中的类时,需要先在class前导入这个类的包路径1创建一个类LoginUI2创建一个方法initUI()
2023-07-06 21:06:59
325
原创 Java 学习 类与对象讲解
用户类在这个软件上还具有: 查看信息 验证密码 登录 登出 修改信息 等功能,像微信这样的软件,用户还具备发消息 视频通话 发朋友圈等功能。查看信息 验证密码 登录登出修改信息 等功能,像微信这样的软件的用户 还具备 发消息 视频通话 发朋友圈等功能。类与对象指的是一种编程思想,其中类是类别的概念,对象是这个类别中一个具体的个例。学生类对应 某一名具体的学生 计算机类 对应我正在使用的这台计算机。对象的创建:对象是根据类创建的,类就是数据模板。类与对象的概念 : 什么是类 什么是对象。
2023-07-04 20:35:33
136
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人