Java
文章平均质量分 53
学习java的旅程
寒霏
满天繁星,你总要成为其中一束。
展开
-
基于比较的常见排序方式
几种常见的基于比较的排序方式排序简介交换排序1.冒泡排序思想:两个相邻元素两两比较,依次向后,一趟确定一个元素位置。说明:冒泡排序有两层循环,第一层循坏是确定比较趟数,第二层循环确定元素位置,每确定一个元素的位置,检索数组长度减少一位。实例:这个数组其实第六趟已经有序了,但是程序还是会继续比较下去,因而可以设置一个状态值来判断数组是否已经有序,读者可以自行编写代码,这里不再展开。代码:public void bubbleSort(int[] array){ for (int原创 2021-09-20 12:05:50 · 1688 阅读 · 3 评论 -
验证尼科彻斯定理
验证尼科彻斯定理尼科彻斯定理:任何一个整数 m 的立方都可以写成 m 个连续奇数之和。例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+195^3=21+23+25+27+296^3=31+33+35+37+39+41通过观察我们不难发现:最中间的数总是 m 的平方,只不过是偶数的话,就向两边取值。奇数的数量等于 m 的值。思路:想到这里,问题就好解决了,就只有一个难点,那就是怎么得到 m 的值,注意由于通过Math类的pow方法,返回的是浮点数,且由原创 2021-08-30 13:36:26 · 497 阅读 · 0 评论 -
图书管理系统
图书管理系统这里我们主要是了解面向对象的思想,功能方面可能不那么如尽人意(如果想要更全面的功能,可自行优化)。这里实现的图书管理系统分为管理用户端和普通用户端。下面是他们的操作。管理用户端:查阅书籍增加书籍删除书籍打印书籍列表退出普通用户端:查询书籍借阅书籍归还书籍退出图书管理系统要有书,那么我们首先创建一个 Book 类,它存储着一本书的基本信息。代码如下:package book;public class Book { private String n原创 2021-06-20 15:18:37 · 508 阅读 · 0 评论 -
面向对象的三大特性之一:多态
多态多态: 一个对象可以指向多种实际类型,同一个事件发生在不同的对象上会产生不同的结果。动态绑定: 对象在运行时能够认知自己的本质类型。例:Animal类public class Animal { protected String name; public Animal(String name) { this.name = name; } public void eat() { System.out.println(this.na原创 2021-05-30 20:13:51 · 212 阅读 · 0 评论 -
对面对象的三大特性之一:继承
继承继承: 子类继承父类,使得子类拥有父类中的成员变量与方法的属性的行为。例如动物(Animal)都有名字,都会吃饭。而猫(Cat)不仅有名字,还有颜色,会吃饭,它还会跑;而鸭子(Duck)不仅有名字,会吃饭,还会游泳和飞。那么此时动物与猫和鸭子就达到了继承的关系。此时,Animal 这样被继承的类,我们称为 父类 , 基类 或 超类, 对于像 Cat 和 Duck 这样的类,,我们称为 子类,子类会继承父类的字段和方法,,以达到代码重用的效果。语法:class 子类 extends 父类 {原创 2021-05-26 17:18:02 · 100 阅读 · 0 评论 -
面对对象的三大特性之一:封装
封装封装:将一些需要的字段或方法,使用private关键字进行修饰,同时提供对应的get方法和set方法来提供给外部。封装的意义:数据的安全性。类的调用者对类的使用成本降低了,相应的开发效率更高。我们先看一个不进行封装的代码:Person类class Person { public String name; public int age; public Person(String name, int age) { this.name = name;原创 2021-05-26 15:21:18 · 78 阅读 · 0 评论 -
双链表
双链表双链表无非就是在单链表上加了一个尾指针,操作过程与单链表类似,在这里将不再赘述,如果需要可以查看上篇单链表的博文,。Node类public class Node { public int value; public Node prev; public Node next; public Node(int value) { this.value = value; }}LinkedList类public class LinkedLis原创 2021-05-13 19:24:23 · 76 阅读 · 0 评论 -
顺序表
顺序表的原理:我们操作顺序表时,无非就是对顺序表的长度进行操作,例如我们删除顺序表一个元素时,要将顺序表长度 - 1,然而数组的真实长度并没有改变。又例如当我们打印顺序表时,必须是以顺序表的长度size操作,而不是以数组本身长度data.length操作,我们要牢记要拿着顺序表的长度size操作一切。我们在MyArrayList类中存放顺序表的内容public class MyArrayList { public int[] data; //用数组存放数据 public int原创 2021-05-09 15:37:57 · 148 阅读 · 0 评论 -
单链表
我们在Node类中实现单链表的每个节点的内容public class Node { public int value; //节点的数据 public Node next; //节点的引用 //导入节点数据,next不需要初始化,默认为null public Node(int value) { this.value = value; }}为了只有一个头结点,我们在另外一个MylinkedList类中创建一个头结点public clas原创 2021-05-09 14:48:56 · 158 阅读 · 0 评论 -
sublime执行java程序
sublime上的java程序通过电脑命令执行我们安装好JDK和基本配置后,我们首先在sublime中写好java程序。假如我们写的是一个HelloWorld.java的文本文档如图我们用sublime打开 并写入以下代码public class HelloWrold{ public static void main(String[] args){ System.out.println("HelloWrold!"); }}然后我们让电脑执行相应的命令即可执行代码我们先输入WIN+R原创 2021-03-28 15:49:32 · 1764 阅读 · 2 评论 -
汉诺塔
汉诺塔问题1. 我们先在hanoi方法里实现汉诺塔的基本移动逻辑2. 再在hanoiMove方法里实现具体的移动过程import java.util.Scanner;public class test{ //移动过程 public static void hanoiMove(char pos1,char pos2){ System.out.print(pos1+" -> "+pos2+" "); } //汉诺塔基本实现逻辑 publi原创 2021-04-12 20:02:36 · 82 阅读 · 0 评论