自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 迭代器

Iterator 迭代器 通用三种组织方式 1.线性的(只有线性有下标) 2.树型的 3.图形的 只有线性组织方式有下标,可以一一遍历(顺序表–ArrayList, 链表–LinkedList, 栈–Stack,队列–Queue),不需要迭代器。 没有下标的,用迭代器 遍历和删除(Set, Map) 迭代器说白了,就是从容器里把东西取出来 public class Main { public static void main(String[] args) { Set<S

2020-12-26 14:46:25 87

原创 将二叉搜索树转换成一个排序的双向链表

class Node { char val; Node left; Node right; Node(char val) { this.val = val; } } public class Tree { public Node Convert(Node pRootOfTree) { if (pRootOfTree == null) { return null; } conve

2020-12-19 17:28:00 106 1

原创 二叉树

树 : 子树是不相交的 除根结点外,每个结点有且仅有一个父结点 一棵 N 个结点的树有 N-1 条边 二叉树: 一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。 二叉树的特点: 每个结点最多有两棵子树,即二叉树不存在度大于 2 的结点。 二叉树的子树有左右之分,其子树的次序不能颠倒,因此二叉树是有序树 两种特殊二叉树: 1、满二叉树:每一个层的结点数都达到最大值 2、完全二叉树:对于深度为K的,有n个结点的二叉树,每一

2020-12-17 16:46:07 88

原创 栈实现队列

利用 两个栈 实现 队列 public class MyQueue { private Stack<Integer> stack1; private Stack<Integer> stack2; public MyQueue() { stack1 = new Stack<>(); stack2 = new Stack<>(); } 是否为空 public boolean empty() {

2020-12-16 14:08:25 71

原创 队列实现栈

利用两个队列实现 栈 public class MyStack { private Queue<Integer> queue1; private Queue<Integer> queue2; public MyStack() { queue1 = new LinkedList<>(); queue2 = new LinkedList<>(); } 是否为空 public boole

2020-12-15 19:45:41 60

原创 循环双端队列

public class MyCircularDeque { public int[] elem; public int front; public int last; public MyCircularDeque(int k) { this.elem = new int[k+2]; } 是否为空 public boolean isEmpty() { if (this.front == this.last) {

2020-12-14 15:58:34 69

原创 循环队列

循环对列 public class MyCircularQueue{ public int[] elem; public int front;//头 public int rear;//尾 public MyCircularQueue(int k) { this.elem = new int[k+1]; } 入队 public boolean enQueue(int value) { if (isFull()) {

2020-12-13 16:48:19 60

原创 Stack (栈)、Queue (对列)

顺序表实现栈 public class MyStack<T> { public T[] elem; public int pop; public MyStack(){ this.elem = (T[])new Object[10]; } //是否满了 private boolean isFull(){ return this.pop == this.elem.length; } //入栈

2020-12-12 15:31:17 73

原创 装箱拆箱

手动装箱拆箱 public static void main(String[] args) { int i = 10; //装箱操作,新建一个Integer 类型对象 ,将 i 的值放入对象的某个属性中 Integer ii = Integer.valueOf(i);//第一种(常用) Integer ij = new Integer(i);//第二种 //拆箱操作,将 Integer 对象中的值取出,放到一个基本数据类型中

2020-12-11 15:24:40 80 1

原创 StringBuilder、StringBuffer

String 和 StringBuilder及StringBuffer的区别(都被final修饰,不能被继承) * 1、String 的拼接会产生大量临时变量。StringBuilder及StringBuffer不会(因为可以更改) * 2、String 拼接会被优化为StringBuilder的append() * 3、String和StringBuilder一般用于单线程情况下, StringBuffer一般用于多线程(synchronized 线程安全) 最常用 public static

2020-12-10 15:12:37 59

原创 字符串方法

判断子串是否存在 查找子串位置 从给定位置往前找 判断字符串是否以子串开头 判断字符串是否以子串结尾 public static void main(String[] args) { String str = "ababcabcdabcde"; //判断子串是否存在 boolean flg = str.contains("abc"); System.out.println(flg);//true //查找子串位置

2020-12-09 21:02:07 103

原创 String

public static void main(String[] args) { String str1 = "hello"; System.out.println(str1);//hello String str2 = new String("abcdef"); System.out.println(str2);//abcdef char[] val = {'a','b','c','d','e','f'}; S

2020-12-08 16:35:22 71

原创 深拷贝

深拷贝: 改变不会使原数据改变 浅拷贝: 改变会使原数据改变 public static void main(String[] args) { int[] array = {1,2,3,4,5,6}; int[] array2 = array.clone(); array2[0] = 99; System.out.println(Arrays.toString(array));// 1 2 3 4 5 6 System.ou.

2020-12-07 16:05:18 72

原创 接口实现多继承

接口和类之间的关系:用 implements(实现) 接口为了解决Java单继承的问题,可以实现多个接口 只要这个类 实现了该接口,就可以进行 向上转型 一个类可以继承一个普通类/一个抽象类,并且可以同时实现多个接口 class Animal { protected String name; public Animal(String name) { this.name = name; } } interface IFlying { void fly(); }

2020-12-06 12:14:57 269

原创 接口

接口(interface): 1.接口 当中的 方法,都是 抽象方法 2.其实可以有具体的实现方法。这个方法是被default进行修饰的 3.接口当中定义的成员变量,默认是常量 4.接口当中的成员变量默认是: public static final 成员方法默认是:public abstract 5.接口是不可以被实例化的 6.接口和类之间的关系:用 implements(实现) 7.接口为了解决Java单继承的问题,可以实现多个接口 8.只要这个类 实现了该接口,就可以进行 向上转型 // pu

2020-12-05 15:48:42 134 1

原创 抽象类

1.抽象方法:一个方法如果被 abstract 修饰,这个方法是抽象方法 抽象方法可以没有具体的实现 2.包含抽象方法的类 是抽象类(也要用 abstract 修饰) 注意: 1.抽象类不可以被实例化 (不能 Shape shape = new Shape();) 2.类内的数据成员和普通类没有区别,只是多了抽象方法 3.抽象类主要被用来继承 4.如果一个类继承了这个抽象类,那么这个类必须重写这个抽象类的抽象方法(除非这个类本身也是抽象方法) 5.当 抽象类A 继承 抽象B 那么 A 可以不重写 .

2020-12-04 14:11:52 70

原创 继承

继承 关键字 extends (子类/派生类) 继承了 (父类/基类/超类) (子类/派生类) 继承了 (父类/基类/超类) 除 构造方法 外所有的 super(); 只是显式调用 并不是继承了父类的构造方法 以达到代码重用的效果 1.在Java中,一个子类使用 关键字 extends 只能继承一个父类(单继承) 2.子类构造时,要先帮父类进行构造 关键字 super 代表父类对象的 引用 在子类中使用 super();//调用父类的构造方法,和 this() 一样 必须放在第一行

2020-12-03 15:12:20 120

原创 代码块、匿名对象

代码块: 实例代码块/构造代码块 静态代码块 本地代码块 class Student { private String name; private int age; private static int count; 实例代码块 { this.name = "zhangfei"; count = 99; System.out.println("实例代码块"); } 静态代码块 不能访问非静态数据成员 静态的内容,只会被执行一

2020-12-02 16:09:14 107

原创 泛型

泛型 1、 : T 占位符 表示 当前类是 泛型类 2、放数据时 可以自动进行类型检查 3、取数据时 可以自动进行类型转换 4、泛型是在编译时期的一种机制 -》擦除机制 。 编译时 按照 Object 编译,不是替换成 Object 5、泛型是有边界的 不能 new 泛型类型的数组 泛型类型的参数 不参与类型组成 简单类型 不能 作为泛型类型的参数 class MyStack<T> { public T[] elem; public int top; public

2020-12-01 23:38:38 89

原创 引用的理解-----链表

基本类型vs引用类型 从内存模型的角度理解: 基本类型:直接使用值, 引用类型:间接引用值(先把值读出来,根据读出来的值找对象处理) 引用是指向对象的一种数据类型,不能引用指向引用,对象不能指向其他东西 NPE (空指针异常) 通过一个引用, 操作其指向的对象中的属性/方法时,当该引用为null时,出现。 方法要不要使用static 看这 个方法是不是和该类对象有关系 如果有两个链表对象,调用-个对象的add,期望不对另-一个链表对象产生影响 说明add方法和对象有关系,不应该用static。 总结:凡是和

2020-11-20 00:03:02 978

原创 归并排序

归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法,包括两个步骤,先分解再合并,如图: 即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 归并排序 (递归实现) 时间复杂度: n*log(2)n 空间复杂度: O(n) 稳定排序 //归并排序 public static void mergeSort(int[] array) { mergeSortInternal(array,0,array.length-1); }

2020-11-19 00:07:32 242

原创 数据结构——常用的排序方法

稳定性: 两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法。 例:2 3(a) 1 4 3(b) 经过排序后为 结果为: 1 2 3(a) 3(b) 4 稳定排序 结果为: 1 2 3(b) 3(a) 4 不稳定排序 如果一个排序是 稳定的的排序 ,那么他就 可以变为 不稳定的排序但如果一个排序本身是 不稳定排序,你 不可能 把它变为 稳定排序。 稳定排序中一般没有跳跃式交换。 常用的 七个 基

2020-06-16 23:57:30 187

原创 PriorityQueue及其构造

常用接口: PriorityQueue是线程不安全的 PriorityBlockingQueue是线程安全的 这里只说PriorityQueue。 PriorityQueue不能插入null对象,否则会抛出NullPointerException PriorityQueue中放置的元素必须要能够比较大小,不能插入无法比较大小的对象,否则会抛出ClassCastException异常 public static void main(String[] args) { PriorityQueu

2020-05-31 13:23:31 510

原创 自定义顺序表栈和链表队列

自定义顺序表栈 import java.util.Arrays; public class MyStack<T> { public T[] elem; public int pop; public MyStack(){ this.elem = (T[])new Object[10]; } //是否满了 private boolean isFull(){ return this.pop == this.elem

2020-05-21 10:02:36 92

原创 异常

import java.util.Scanner; Throwable 是所有异常和错误的父类 Throwable 已知直接子类: 1、Error(错误) 由程序员自己解决 2、Exception(异常)是所有异常的父类 可以由程序自己解决: (1)RuntimeException运行时异常(也叫非受查异常):在程序运行时抛出的异常 (2)编译时异常(也叫受查异常):在程序编译时的异常 class Person implements Cloneable{ @Override protect

2020-05-15 13:37:03 113

原创 字符串的存储

import java.lang.reflect.Field; import java.util.Arrays; public class TestDemo { 字符串常量池: 放在堆里 内容不重复的 public static void main2(String[] args) { String str1 = "hello"; String str2 = new String("hello"); System.out.println(str1 == st

2020-05-15 13:00:05 176

原创 多态

向上转型 向上转型->父类引用 引用子类对象 生向上转型的时机: a.直接赋值 b.传参 c.返回值 向上转型后 通过父类的引用 只能访问父类自己的方法或属性 父类引用 只能访问自己特有的 重写:override(覆盖/覆写) 1.方法名相同 2.返回值相同 3.参数列表相同 不同的类-》继承关系上 调用时用的是 子类的重写方法 重写的注意事项: 1.需要重写的方法 不能被fina...

2020-05-04 23:35:49 91

原创 类与对象 访问修饰限定符: public

访问修饰限定符: public:公有的 private:私有的 protected:受保护的 什么都不写:默认权限-》包访问权限 这里只讲 public class Person { 1.字段->成员变量-》定义在方法外面,类的里面 (1)实例成员变量:对象里面 实例化成员(一般不初始化)若没有初始化 默认值为对应的0值 引用类型默认为null 简单类型默认为0 char默认为 ‘\...

2020-04-19 12:42:01 348

原创 C语言扫雷游戏

game.h #define ROW 9 #define COL 9 #define ROWS ROW+2 #define COLS COL+2 #define EASY_COUNT 10 #include<stdio.h> #include<stdlib.h> #include<time.h> void InitBoard(char board[RO...

2020-04-09 23:26:30 73

原创 Java的八种数据类型

Java的八种数据类型 1、整型:int 4个字节 -2147483648—2147483647 2、短整型:short 2个字节 -32768–32767 public static void main(String[] args) { short sh = 12; System.out.println(Short.MAX_VALUE); System.out.pri...

2020-04-09 17:10:29 149

原创 用git删除github中上传的文件

如图要删除此文件 打开文件所在位置,右击鼠标点击delete,如图 右击空白点commit 这里的测试就是之前commit里的 刷新就ok了

2020-03-30 10:33:43 73

原创 第一篇博客

都说大学可以浪,所以我就浪了,玩了整整两年,然后突然2020了,我大三了,回顾了一波,emmm,还是不回顾了,反正就是很迷茫,对未来惶恐,于是就觉得不能再混了,该奋起了,这篇博客如题是我第一篇博客,我寻思着把以后编程遇到的问题都整上来,一周整个两篇以上,全当巩固和督促,也希望我以后的博客对大家有帮助,先期目标是学好一门语言,在秋招上能对我有所帮助,未来希望能拿到华为的offer。 最后朋友们共同努...

2020-03-28 16:44:06 122

空空如也

空空如也

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

TA关注的人

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