![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java+DS
Java基础总结
时间来不及了鸭
基础不牢地动山摇
展开
-
2.数据结构---链表
涉及到链表的头插尾插新增删除等一系列操作。逻辑上连续物理上不一定连续。2.经常插入和删除的使用。1.根据下标查找的使用。支持随机访问O(1),不支持随机访问O(n)任意位置频繁插入/删除。同时涉及到增删查改等。高校存储+频繁访问,原创 2024-05-09 10:26:02 · 250 阅读 · 0 评论 -
1.数据结构---顺序表
第一次Add的时候分配大小为10的内存。原创 2024-05-08 15:26:06 · 176 阅读 · 0 评论 -
Java---框架及其数据结构
collection一些操作 增删查找MAP泛型(不需要自己手动转 编译器帮我们完成)一系列listArraylist和Linkedlist区别1.Arraylist的底层是数组,Linkedlist的底层是链表2.ArrayList存放的是连续的存储空间,Linkedlist不是3.Arraylist可以高效的进行随机访问,linkedlist不行4...原创 2020-04-11 16:24:55 · 93 阅读 · 0 评论 -
Java---String类
创建字符串三种方法:字符串比较相等“==” 在JAVA中不是比较内容是否相等,而是比较两个引用是否指向同一个对象.(用于比较身份)“equals” 在Java中用于比较内容是否相等注意:在上面的最后一行代码中,比较一个字符是否与已知的字符串相等.最好把比较的写在前面.否则会发生空指针异常!字符串常量池同一个字符串可能会被存储多次,因此我们可以采取让字符串入池的方式减少内存的...原创 2020-04-10 10:08:33 · 107 阅读 · 0 评论 -
Java---Map和Set
Map友情提示:代码的注释更详细哟!map 可以存放键值对代码示例:查找对应的映射关系遍历map的两种方法法一:法二:代码输出结果:Setset只存放一个 set可以用于去重## 代码示例:遍历set二叉搜索树的一些代码:查找 插入 删除代码示例查找插入删除...原创 2020-05-13 19:48:53 · 229 阅读 · 0 评论 -
Java---对象的比较
“== & equals”:比较的是对象的身份(引用的地址)是否相同equals:调用比较身份 可以手动重写equals实现按自定义比较代码示例:前4步是固定套路关于Comparator和Comparable的区别Comparable**=0:**表示两个值的大小相等**<0:**表示比较小**>0:**表示比较大ComparatorComparator的比较需要重新定义一个类实现Comparator接口使用以下方式比较: 第一个一般方法第二个匿名原创 2020-05-11 18:52:21 · 337 阅读 · 0 评论 -
Java---优先级队列(堆)
堆(本质是一棵完全二叉树)分为大根堆&&小根堆(以大根堆为例)大根堆逻辑结构存储结构(基于数组)一些说明:arr:存储堆的数组size:有效元素的个数index:要调整位置的下标向下调整代码示例:(以大根堆为例)建堆结果显示优先队列的一系列操作(小根堆)1.入队列(向上调整)向上调整2.出队列(向下调整)3.取队首元素结果...原创 2020-04-30 21:44:29 · 363 阅读 · 0 评论 -
Java---栈和队列
友情提示:代码中的注释也很有用呦~~自己写一个栈顺序表实现顺序表底层是数组所以需要构建 数组和数组中的有效值操作:pop和peek不同的是 删除后数组有效值要-- 取栈顶元素不用结果链表实现链表得包括 值 next 傀儡节点之类东西操作:就和我们之前写过的链表类似结果:队列顺序表实现在删除的时候前面位置可能会为空 此时到Tail位置 我们在继续增添元素的...原创 2020-04-19 10:46:59 · 130 阅读 · 0 评论 -
Java---排序
常见的一些排序总结:插入排序:分为已排序区间和未排序区间每次在未排序区间找到元素和已排序区间的元素比较大小 看它应该放在那里代码:希尔排序:和插入排序差不多每次将元素间隔分成几分 分别去比较这几份元素的首元素 调整间隔 间隔越来越小直到为1代码:选择排序:每次都找出待排序区间中 最小的元素## 代码:堆排序:先创建一个堆 (按照大根堆的形式) 在其中将堆顶元素和堆低元素进行交换并删除堆底元素 再次进行向下调整代码:冒泡排序:两两比较 不符合(升序)条件就交换代码1:原创 2020-05-09 18:25:25 · 120 阅读 · 0 评论 -
Java---先序递归
下面这个树 我们来看看它的先序步骤: 先序访问树的核心是从根节点–>左子树–>右子树 这个规范来的 A 访问根节点 B 递归处理A的左子树 C 递归处理B的左子树 D 递归处理C的左子树 此时发现D没有左子树,不需要继续递归 同时D没有右子树,这个树就完成了 ...原创 2020-04-18 16:29:49 · 103 阅读 · 0 评论 -
JavaSE---数据类型+运算符
1.如何运行一个Java程序?2. 代码中的命名禁忌不能用数字命名不建议使用$和下划线原创 2020-12-07 09:34:16 · 130 阅读 · 0 评论 -
JavaSE---逻辑运算
逻辑与(&&) : 表达式1为假后面直接短路逻辑或(| |) : 表达式1为真后面直接短路无符号右移: 只补02.输入的细节3. if中内嵌的是Boolean表达式4. 分支语句之switch5.生成随机数的方法6.十进制的每一位计算 /10 %10二进制的每一位计算 /2 %2...原创 2020-12-11 09:38:02 · 94 阅读 · 0 评论 -
典型的递归问题
递归:递归可以使复杂问题简单化 递归是函数调用自己本身函数的调用会在栈上开辟内存 对于递归来说核心是找到递归公式和递归终止条件假如终止条件找错会出现StackOverFlowError错误经典例题1: 汉诺塔问题先来分析一下:找到递归的终止条件和递推公式后我们来实现代码经典例题2:青蛙跳台阶问题青蛙可以一次跳1个台阶也可以一次跳2个台阶请问青蛙跳n级台阶有多少种跳法?先来分析一下:找到递归的终止条件和递推公式后我们来实现代码**经典例题3:**斐波那契数列再来分析一下:递归代原创 2020-12-15 13:14:48 · 388 阅读 · 0 评论 -
Java---数组
数组定义:Java的数组是引用类型在栈上存储当打印数组的时候打印出的是java化的地址 堆上存储的是数组的值数字的交换[数组版]原创 2020-12-19 09:09:55 · 50 阅读 · 0 评论 -
Java---类和对象(2)
结果显示:2.静态方法内部不能调用非静态数据成员3.所以使用this关键字结果就正确了原创 2020-12-25 07:19:14 · 84 阅读 · 0 评论 -
Java---二维数组
二维数组相当于是一维数组的各下标又存了了个一维数组画图如下:二维数组的打印方式:二维数组之空指针异常Java的行必须指定 列无法自动推导指定列后结果正常原创 2020-12-22 18:46:16 · 73 阅读 · 0 评论 -
Java---泛型
一.泛型的意义1.可以自动进行类型转换2.可以自己进行类型的强转二.泛型是怎么编译的擦除机制–>编译的时候泛型类型被擦除成Object不是替换! ! ![注] T为Integer则链表中保存的类型是整型三.泛型的注意事项1.不能new泛型类型的数组 T[ ] a = new T[10];2.简单类型不能作为泛型类型的参数3.泛型类型的参数不参与类型的组成4.泛型是编译期间的一种机制...原创 2020-12-28 07:13:00 · 81 阅读 · 0 评论 -
java--类和对象
类与对象面向对象(oop)和面向过程语言面向过程:C语言 关注的是过程.它用来处理小问题是弱类型的语言,同时是我们学语言的开端.面向对象:Java c++ 关注的是对象 将一件事拆分成不同的对象靠对象之间的交互完成任务.通过逻辑将一个个功能实现连接起来.OOP语言(也称面向对象语言)三大特点:继承 封装 多态类 :就是模板对象:是实体 开发时找对象建对象用对象并维护对...原创 2020-03-23 14:28:40 · 154 阅读 · 0 评论 -
进制转换
作为一名程序猿,进制与我们不可分割.常见的诸如二进制.八进制.十进制.十六进制等.今天我想来谈谈我是怎么计算进制转换的.1.二进制十进制的转换a.十进制转二进制(十进制是我们日常使用的数字 二进制只有1和0)例如 12=8+4 即就是8和4的空位填1其他位补0 12的二进制就是1100b.十进制转二进制从最低位数起 右一位开始用这一位的数字×2的0次方依次累加例如 1010 01...原创 2020-03-01 11:32:18 · 479 阅读 · 0 评论 -
方法(1)
这个题是 1!+2!+…+n!a.构造n的阶乘的函数b.构造阶乘的和的函数c.输出阶乘的和的函数原创 2020-03-09 17:30:00 · 57 阅读 · 0 评论 -
java---方法(重载,递归)
方法1.基本框架:public static 方法的返回值 方法的名称(遵循小驼峰定义) {代码;(有返回值的这里有return);}2. 注意点:#Java中没有函数这一说法,也没有函数声明这样的概念#Java中只用按值传递3.重载 overload (区分重写,两个完全不同)规定a.方法名相同b.返回值没有要求c.参数列表(参数个数 类型)一定不同d.在一个类中...原创 2020-03-18 15:50:04 · 314 阅读 · 0 评论 -
今天是无符号右移
原创 2020-03-05 16:50:44 · 90 阅读 · 0 评论 -
第二个程序 交换
原创 2020-02-28 14:47:42 · 140 阅读 · 0 评论 -
java---数组
数组的存储空间是连续的关于数组的定义(3种)数组的输出(4种)1.for循环2.for each3.Arrays.toString(个人最喜欢用)数组的拷贝(3种)1.建立新的数组去存储原数组(循环访问)2.用System.arraycopy(依次输入原数组,拷入的下标,新数组,下标,拷贝的长度)3.Arrays.copyof(依次输入要拷贝的数组 拷贝的长度)4...原创 2020-03-17 16:20:18 · 75 阅读 · 0 评论 -
今天是递归
1-5的阶乘1-5的和原创 2020-03-08 18:04:32 · 54 阅读 · 0 评论 -
Java---异常
在java中异常也是一个类,有着自己的语法和结构.有着如下的层次和结构异常:程序可以帮助程序猿改变的错误异常分为运行时异常和编译时期异常(受查异常)错误:需要程序猿手动改正的错误在我们日常敲代码的过程中我们遇到过许多的异常1.除以0 分母必不为02.数组下标越界异常3.访问null异常防御式编程LBYL:操作之前充分检查EAFA:先操作遇到问题在解决 (Java中常遇到)异...原创 2020-04-06 16:22:50 · 169 阅读 · 0 评论 -
找各种数 水仙花数/四叶玫瑰树等
原创 2020-03-07 17:38:40 · 357 阅读 · 0 评论 -
java数组1
二分查找冒泡查找升级版本原创 2020-03-16 16:49:25 · 84 阅读 · 0 评论 -
Java---顺序表链表
顺序表开启数据结构的学习线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。 底层是数组!线性表的一系列问题 :增 删 查 …构造一个线性表...原创 2020-03-31 17:48:20 · 111 阅读 · 0 评论 -
谈谈java环境的成功安装以及第一次运行成功
20200225开始我人生中第二次接触另一种语言—java.一.Java的环境变量的安装1.双击你安装的jdk 默认安装在C盘 复制路径(最好复制下来不然自己打的时候容易出错)一路确定到最后一步2.双击此电脑右键属性 此时你可以看到关于你电脑配置 在最左侧点击高级系统配置 点击环境变量 在系统变量里新建JAVA_HOME变量值是C盘Java jdk bin的路径复制粘贴3.新建classp...原创 2020-02-28 11:29:32 · 738 阅读 · 0 评论 -
来啦 ! 老弟! !
求最大值最小值原创 2020-02-29 10:03:44 · 93 阅读 · 0 评论 -
递归与非递归
鸟枪换炮了 今天起不用记事本写代码 改用idea了 这个真的很方便非递归递归原创 2020-03-13 15:48:19 · 78 阅读 · 0 评论 -
小总结
今天回顾了前几天的内容,发现还是要多敲代码.敲代码时会出现一些过去没注意到的点.算是更加熟悉Java的一些细节.加油小白!原创 2020-03-02 15:49:57 · 69 阅读 · 0 评论 -
Java---继承.多态.抽象.接口
继承 (is a 的关系)上面我创建的这两个类,我们可以发现 age name toGether都是相同的.那么在实际项目中我们为了避免一次不用写这么多相同的代码引出了继承这一概念.什么是继承呢?继承 :在多个类当中若是存在相同的行为属性和行为时,则将这些内容单独写入一个类当中,其他类就不用在重新定义了,只需要继承就可.像 Family这样的类 我们称之为父类 基类 或超类而 Moth...原创 2020-04-04 20:41:50 · 248 阅读 · 2 评论 -
今天是 "重载"
原创 2020-03-12 11:53:57 · 80 阅读 · 0 评论 -
今天是关于运算符的一些东西
原创 2020-03-04 17:06:23 · 92 阅读 · 0 评论