
JavaSE
LaLaLaworld
骑上我心爱的小摩托,代码它不会堵车
展开
-
Java-抽象类和接口及区别
抽象类:没有实际工作的方法可以被设计为抽象方法(abstract method),包含抽象方法的类就称为抽象类(abstract class)包含抽象方法的类必须加上abstract关键字来表示这是一个抽象类。注意!!!(1)抽象类不能直接实例化(2)抽象方法不能是private的(3)抽象类中可以包含其他的非抽象方法,也可以包含字段,这个非抽象方法和普通方法的规则都是一样的,也可以被重写,也可以被子类直接调用。为什么要使用抽象类?抽象类存在的最大意义是为了继承。抽象类本身不能被实例化,要想使原创 2020-06-22 22:17:18 · 133 阅读 · 0 评论 -
Java-包、封装、继承、多态
带着包名的类名是全限定类名,在相同的包中的类名才可以省略包名。为了使用方便,可以在某个.java文件的开头显示的import某个类的全限定类名,后面的代码中就可以直接使用类名来进行操作了。当我们需要用到某个类的时候,不需要记住全限定类名,后面的代码中就可以直接使用类名来进行操作了。import java.util.*;*表示通配符,把java.util中所有的类都导入了;但一般不推荐这样做,...原创 2020-05-13 23:35:48 · 244 阅读 · 1 评论 -
Java-142.环形链表II【力扣】
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。解题思路:设定两个指针,一个fast(每次走两步),一个slow(每次走一步)每次两个指针移动,两者之间的距离就拉进了1如果链表带环,f...原创 2020-04-21 19:11:27 · 284 阅读 · 0 评论 -
Java-141.环形链表I【力扣】
给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。...原创 2020-04-21 15:35:01 · 187 阅读 · 0 评论 -
Java-160.相交链表【力扣】
编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点c1开始相交。示例1:原创 2020-04-20 18:13:25 · 283 阅读 · 0 评论 -
Java-链表的回文结构【牛客网】
题目描述对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例:1->2->2->1返回:true解题思路:不符合规范的两种思路(空间复杂度为O(N)):1、如果是一个字符串/数组判定回文非常简单:用一...原创 2020-04-20 15:32:37 · 362 阅读 · 0 评论 -
Java-删除链表中的重复结点【牛客网】
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5 处理后为 1->2->5解题思路:判断cur和cur.next由于链表是有序的,重复结点一定是相邻的,所以目标就是识别出当前结点是不是重复结点,如果不是重复结点,就把这个结点插入到结果链表的...原创 2020-04-18 23:11:37 · 243 阅读 · 1 评论 -
Java-链表分割【牛客网】
题目描述:编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。解题思路:创建两个新的链表:big:这个链表中所有大于等于基准值的节点small:这个链表中所有小于基准值的节点基准值为4把9和基准值(4)相比,9比基准值大:...原创 2020-04-17 22:47:48 · 375 阅读 · 0 评论 -
Java-21. 合并两个有序链表【力扣】
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4代码要求:/** * Definition for singly-linked list. * * public class ListNode {* *...原创 2020-04-03 21:23:41 · 382 阅读 · 0 评论 -
Java-链表中倒数第k个结点【剑指Offer】
题目描述:输入一个链表,输出该链表中倒数第k个结点。思路:k不能是0,但是k可以是size,先求出当前链表的长度,用链表长度减去k就是要走的步数。就可以求出倒数第k个结点。代码实现:public class LinkedListTest{ static class ListNode{ int val; ListNode next; public ListNode(int v...原创 2020-04-03 16:03:01 · 121 阅读 · 2 评论 -
Java-876. 链表的中间结点【力扣】
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。代码要求:/** * Definition for singly-linked list. * * public class ListNode {* * int val;* * ListNode next; * * ListNode(int x) { ...原创 2020-04-03 15:31:05 · 206 阅读 · 1 评论 -
Java-206. 反转链表【力扣】
反转一个单链表。示例:输入: 9->5->2->7->3->NULL输出: 3->7->2->5->9->NULL代码要求:/** * Definition for singly-linked list. * * public class ListNode {* * int val;* * List...原创 2020-04-02 21:53:09 · 292 阅读 · 0 评论 -
Java-203. 移除链表元素【力扣】
删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5代码要求:/** * Definition for singly-linked list. * * public class ListNode { * * int v...原创 2020-04-02 20:13:13 · 186 阅读 · 0 评论 -
Java-实现交换两个变量的值。要求:需要交换实参的值。
为了解决这个题目,我们首先要了解参数传递的方法:参数传递的方法一共有三种:1、按值传递2、按引用传递3、按指针传递其中按值传递表示方法(函数)接收的是调用者提供的变量的拷贝,不改变参数的值;按引用传递表示方法(函数)接收的调用者提供的变量地址;按指针传递表示方法(函数)接收的是调用者提供的指针的拷贝,不改变指针的值和地址,但可以改变指针所指向的地址。在C语言中可以通过传地址的方式...原创 2020-02-12 23:22:27 · 457 阅读 · 0 评论 -
Java-经典代码题-1、给定两个整型数组, 交换两个数组的内容.2、给定整型数组, 把所有的偶数放到数组前面, 把所有奇数放到数组后面.
1、给定两个整型数组, 交换两个数组的内容.package gyy;import java.util.Arrays;public class Main{ public static void main(String[] args) { int arr1[]= {9,8,7,6,5,4,3,2,1}; int arr2[]= {1,2,3,4,5,6,7,8,9}; int te...原创 2020-02-12 22:26:36 · 419 阅读 · 0 评论 -
Java-类和对象-编写一个类Calculator,有两个属性num1,num2,这两个数据的值,不能在定义的同时初始化,最后实现加减乘 除四种运算.
编写一个类Calculator,有两个属性num1,num2,这两个数据的值,不能在定义的同时初始化,最后实现加减乘 除四种运算.package gyy;import java.util.Scanner;public class Calculator { public double num1; public double num2; public static void main...原创 2020-02-09 21:51:21 · 917 阅读 · 1 评论 -
Java-数组练习-4.给定一个整型数组, 判定数组是否有序;5.给定一个整型数组, 实现冒泡排序(升序排序)
4.给定一个整型数组, 判定数组是否有序;package gyy;public class yinger1{ public static void main(String[] args) { int arr[]= {1,2,3,4,5,6,7,8,9}; System.out.print(aligned(arr)); } public static boolean aligned...原创 2020-02-08 23:02:20 · 642 阅读 · 0 评论 -
Java-数组练习-1.将整型数组转换成字符串;2.实现一个方法 copyOf, 对一个整型数组拷贝, 得到一个新的数组;3.给定一个有序整型数组, 实现二分查找
1.实现一个方法 toString, 把一个整型数组转换成字符串. 例如数组 {1, 2, 3} , 返回的字符串为 “[1, 2, 3]”, 注意 逗号 的位置和数量.package gyy;public class yinger1{ public static void main(String[] args) { int[] arr={1,2,3,4}; System...原创 2020-02-08 22:04:07 · 308 阅读 · 0 评论 -
Java-数组的创建与使用-3.实现一个方法,使数组中的每一个元素*2;4.实现一个方法,以数组为参数求数组所有元素的和;5.实现一个方法,以数组为参数求数组中所有元素的平均值(注意方法的返回值类型)
3.编写代码: 实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到对应的数组元素上.例如 原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6}package gyy;public class yinger1{ public static void main(String[] args) { int arr[]= {1,2,3,4,...原创 2020-02-08 21:15:10 · 560 阅读 · 0 评论 -
Java-数组的创建与使用-1.创建一个 int 类型的元素依次设置为 1 - 100的数组。2、实现一个方法 printArray, 以数组为参数, 循环访问数组中的每个元素, 打印每个元素的值.
1.编写代码: 创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100package gyy;import java.util.Arrays;public class yinger1{ public static void main(String[] args) { int[] arr=new int[100]; System.out.prin...原创 2020-02-08 19:20:06 · 1512 阅读 · 0 评论 -
Java-方法的使用-递归求青蛙跳台阶问题:一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法
递归实现代码:青蛙跳台阶问题 一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法 ?- 问题分析:台阶的数量跳法的数量1122334558……经过观察发现这是一个斐波那契数列,所以使用斐波那契数列的思想进行编程- 代码实现:package gyy;import java...原创 2020-02-08 15:26:41 · 532 阅读 · 0 评论 -
Java-方法的使用-递归求解汉诺塔问题
递归求解汉诺塔问题 汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。 大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。 大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。 并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。 问应该如何操作?对问题的分析...原创 2020-02-08 14:38:09 · 284 阅读 · 0 评论 -
Java-方法的使用习题-4、写一个递归方法,输入一个非负整数,返回组成它的数字之和. 5、递归求斐波那契数列的第 N 项
4、写一个递归方法,输入一个非负整数,返回组成它的数字之和.package gyy;import java.util.Scanner;public class yinger{ public static void main(String[] agrs) { System.out.print("请输入一个非负整数:"); Scanner s=new Scanner(System.in...原创 2020-02-07 22:21:43 · 591 阅读 · 0 评论 -
Java-方法的使用习题-1、递归求 N 的阶乘2、递归求 1 + 2 + 3 + ... + 10。3、按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4) (递归)
1、递归求 N 的阶乘2、递归求 1 + 2 + 3 + … + 103、按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4) (递归)4、写一个递归方法,输入一个非负整数,返回组成它的数字之和.5、递归求斐波那契数列的第 N 项...原创 2020-02-07 21:55:20 · 266 阅读 · 0 评论 -
Java-方法的重载习题-2、在同一个类中定义多个方法:要求不仅可以求两个整数的最大值,还可以求两个小数的最大值,以及两个小数和一个整数的大小关系
2、在同一个类中定义多个方法:要求不仅可以求两个整数的最大值,还可以求两个小数的最大值,以及两个小数和一个整数的大小关系package gyy;import java.util.Scanner;public class yinger{ public static void main(String[] args) { Scanner sc=new Scanner(System.in);...原创 2020-02-07 18:11:17 · 2752 阅读 · 3 评论 -
Java-方法的重载习题-1、 在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码,求出结果。
1、 在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码,求出结果。package gyy;import java.util.Scanner;public class yinger{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a=sc.ne...原创 2020-02-07 16:08:45 · 3954 阅读 · 0 评论 -
java-方法的创建和调用(练习题)
1、创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3。 要求:在max3这个函数中,调用max2函数,来实现3个数的最大值计算。2、调整数组顺序使得奇数位于偶数之前。调整之后,不关心大小顺序。3、求 N 的阶乘 。3、求1!+2!+3!+4!+…+n!的和4、求斐波那契数列的第n项。(迭代实现)package shuaizai;public class ...原创 2020-02-06 22:58:47 · 740 阅读 · 0 评论 -
Java-编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输 入,最多输入三次。三次均错,则提示退出程序
编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输 入,最多输入三次。三次均错,则提示退出程序package gyy;import java.util.Scanner;public class yinger{ public static void main(String[] agrs) { System.out.print("欢迎使...原创 2020-02-06 20:58:18 · 1509 阅读 · 0 评论 -
java-输入输出(习题)1、输出乘法口诀表、2、输出一个整数的每一位(递归方法)3、获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列
1、输出乘法口诀表package gyy;public class yinger{ public static void main(String[] agrs) { for(int j=1;j<=9;j++) { for(int i=1;i<=j;i++) { //输出乘法以及结果,此处不能换行。 System.out.print(i+"*"+j+"="...原创 2020-02-06 18:37:09 · 271 阅读 · 0 评论 -
Java-猜数字游戏
package gyy;//猜数字游戏import java.util.Scanner;public class yinger{ public static void main(String[] agrs) { //生成一个随机数作为猜测的结果 int num=(int)(Math.random()*100)+1; &n...原创 2020-02-05 22:48:31 · 125 阅读 · 0 评论 -
Java-循环结构(练习题)1求一个整数二进制1的个数、2求两个正整数的最大公约数,3计算值、4求0~999之间的所有水仙花数
1、求一个整数,在内存当中存储时,二进制1的个数。2、求两个正整数的最大公约数3、计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 。4、求出0~999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本 身,如;153=1+5+3?,则153是一个“水仙花数“。)5、完成猜数字游戏...原创 2019-12-30 18:38:11 · 230 阅读 · 0 评论 -
java-程序逻辑控制:判定一个数字是否是素数.打印 1 - 100 之间所有的素数.输出 1000 - 2000 之间所有的闰年.编写程序数一下 1到 100 的所有整数中出现多少个数字9
1、根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)package shuaizai;import java.util.Scanner;public class First { public static void main(String[] args) { Scanner scanner = new Scanner(S...原创 2019-12-23 22:24:18 · 1031 阅读 · 0 评论 -
1、给定两个int变量,交换变量的值2、给定三个int变量,求其中的最大值和最小值
1、给定两个int变量,交换变量的值public class First { public static void main(String[] args) { int a=10; int b=20; int c; c=a; a=b; b=c; System.out.println("a="+a); System.out.println("b="+b); }}...原创 2019-12-23 15:26:03 · 175 阅读 · 0 评论