java入门学习笔记(七)——数组、杨辉三角、冒泡排序、选择排序

作者:神秘网友 发布时间:2020-09-29 02:02:38

java入门学习笔记(七)——数组、杨辉三角、冒泡排序、选择排序

java入门学习笔记(七)——数组、杨辉三角、冒泡排序、选择排序、二分查找。复杂类与对象的简介、定义与构造方法、方法继承、覆盖、重载、多态、异类集合、final关键字

一、数组

这样初始化也是正确的:

int bb[]=new int[] {1,3,2};
package PackageA;

import java.util.Scanner;

public class YangHuiTriangle {
	public static void main(String[] args)
	{
		int a[][];
		int n;
		System.out.println("输入杨辉三角的行数:");
		Scanner sc=new Scanner(System.in);
		n=sc.nextInt();
		a=new int[n][];
		for(int i=0;i<n;++i)
		{
			a[i]=new int[i+1];
			a[i][0]=a[i][i]=1;
		}
		for(int i=2;i<a.length;++i)
		{
			for(int j=1;j<i;++j)
			{
				a[i][j]=a[i-1][j]+a[i-1][j-1];
			}
		}
		System.out.println(n+"行的杨辉三角如下:");
		for(int i=0;i<n;++i)
		{
			for(int j=0;j<=i;++j)
			{
				System.out.print(a[i][j]+" ");
			}
			System.out.println("");
		}
	}
}

运行结果:

java入门学习笔记(七)——数组、杨辉三角、冒泡排序、选择排序

package PackageA;

import java.util.Scanner;

public class BubbleSort {
	public static void main(String[] args)
	{
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int a[]=new int[n];
		for(int i=0;i<n;++i)
		{
			a[i]=sc.nextInt();
		}
		for(int i=0;i<n-1;++i)
		{
			for(int j=1;j<n-i;++j)
			{
				if(a[j]<a[j-1])
				{
					a[j]^=a[j-1];
					a[j-1]^=a[j];
					a[j]^=a[j-1];
				}
			}
		}
		for(int i=0;i<n;++i)
		{
			System.out.print(a[i]+" ");
		}
		System.out.println("");
		sc.close();
	}
}

运行结果

java入门学习笔记(七)——数组、杨辉三角、冒泡排序、选择排序

package PackageA;

import java.util.Scanner;

public class SimpleSort {
	public static void main(String[] args)
	{
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int a[]=new int[n];
		for(int i=0;i<n;++i)
		{
			a[i]=sc.nextInt();
		}
		for(int i=0;i<n;++i)
		{
			int k=0;
			for(int j=1;j<n-i;++j)
			{
				if(a[j]>a[k])
				{
					k=j;
				}
			}
			if(k!=n-1-i)
			{
				a[k]^=a[n-1-i];
				a[n-1-i]^=a[k];
				a[k]^=a[n-1-i];
			}
		}
		for(int i=0;i<n;++i)
		{
			System.out.print(a[i]+" ");
		}
		System.out.println("");
		sc.close();
	}
}

运行结果

java入门学习笔记(七)——数组、杨辉三角、冒泡排序、选择排序

package PackageA;

import java.util.Arrays;
import java.util.Scanner;
import java.util.Random;

public class BinaryQuery {
	public static int binaryQuery(int r[],int value)
	{
		int n=r.length;
		int left=0,right=n-1;
		int mid=(int)(left+right)/2;
		while(left<=right)
		{
			if(r[mid]==value)
			{
				return mid;
			}
			else if(r[mid]<value)
			{
				left=mid+1;
			}
			else
			{
				right=mid-1;
			}
			mid=(int)(left+right)/2;
		}
		return -1;
	}
	
	public static void print(int []r)
	{
		System.out.println("数据如下:");
		for(int a:r)
		{
			System.out.print(a+" ");
		}
		System.out.println("");
	}
	// 主函数
	public static void main(String[] args)
	{
		Scanner sc=new Scanner(System.in);
		
		int r[]= new int[20];
		Random random=new Random();
		for(int i=0;i<r.length;++i)
		{
			r[i]=random.nextInt(100);
		}
		Arrays.parallelSort(r);
		print(r);
		System.out.println("输入要查找的数据:");
		int value=sc.nextInt(),result;
		result=binaryQuery(r,value);
		if(result>0)
		{
			System.out.println(r[result]+"下标为"+result);
		}
		else
		{
			System.out.println("没有找到"+value);
		}
		
	}
}

运行结果

java入门学习笔记(七)——数组、杨辉三角、冒泡排序、选择排序
java入门学习笔记(七)——数组、杨辉三角、冒泡排序、选择排序

二、复杂类和对象简介

在java中,默认将Object类处理成所有类的父类。

可通过super调用父类的构造方法,缺省时调用父类的默认构造方法。

(1)方法覆盖:要求子类的方法名称、返回类型及参数表必须与父类一致

注意:

  1. 子类方法不能缩小父类方法的访问权限
  2. 子类方法不能抛出比父类方法更多的异常
  3. 父类的静态方法不能被子类覆盖为非静态方法
  4. 父类的静态方法可以被子类的静态方法给覆盖(隐藏)
  5. Java虚拟机吧静态方法和所属的类绑定,把实例方法和所属的实例绑定
  6. 父类的非静态方法不能被子类覆盖为静态方法
  7. 父类的私有方法不能被子类覆盖
  8. 父类的抽象方法可以被子类通过两种途径覆盖(即实现和覆盖)
  9. 父类的非抽象方法可以被覆盖为抽象方法

(2)方法重载:要求方法名相同

注意:

  1. 方法的参数类型、个数、顺序至少有一项不同
  2. 方法的返回值类型可以相同,也可以不同
  3. 方法的修饰符可以不相同

(3)多态

如果父类的某个方法,不被子类继承,则可以在该种方法前面加上final关键字修饰。

在一个集合中,所包含的元素对象属于不同类的实例,但这些元素具有共同的祖先。
在java语言中,可以创建具有共同祖先类的对象的集合。

类变量 instanceof 类名
&
(类名)类对象

一个即是static又是final的变量,表示它被保存在一段不能改变的内存空间中,而且在定义时就必须对它进行初始化。

注意:

  1. final修饰对象时,使该对象引用恒定不变(即不能指向其他对象)。
  2. 子类可以继承final修饰的方法,但子类不能重写final修饰的方法。

java入门学习笔记(七)——数组、杨辉三角、冒泡排序、选择排序相关教程

  1. java中关于第三方应用的权限校验方案

    java中关于第三方应用的权限校验方案 目录 前言 事先准备 实现步骤 一、新建spring boot项目,并引入依赖 二、配置多数据源 1.修改配置文件 2.创建切换数据源注解 3.创建数据源类,读取配置文件中配置的数据源 3.创建DynamicDataSource类扩展Spring的Abstract

  2. 正则表达式

    正则表达式 小编最近学习了新技能,利用这个技能,我能快速的找到自己想要的结果,是不是好神奇呢? 下面我就隆重介绍一下这个新技能,它就是Linux中的正则表达式。可能很多人都想问,正则表达式是什么呢?它就是由一类特殊字符及文本字符所编写的模式,我们

  3. MarkDown学习

    MarkDown学习 MarkDown学习 三级标题 一个#号加空格+标题 一级标题 二个#号加空格+标题 二级标题 三个#号加空格+标题 三级标题 Hello,World! (字体旁边加2个*号) Hello,World! (字体旁边加1个*号) ***Hello,World!** (字体旁边加3个 号) Hello,World! (

  4. java笔试面试小题(2)

    java笔试面试小题(2) java笔试面试小题 【来源: 牛客网 】 1、下列选项输出什么( C ) public static void main(String[] args) {Thread t = new Thread() { public void run() {my360DW();}}; t.run();System.out.print(DW); } static void my360DW() { Sy

  5. 通俗易懂SpringCloud-Netflix学习笔记

    通俗易懂SpringCloud-Netflix学习笔记 通俗易懂SpringCloud-Netflix学习笔记 SpringCloud-Netflix 1、常见面试题 2、微服务 2.1、微服务概述 2.2、微服务与微服务架构 2.3、微服务优缺点 2.4、微服务技术栈有哪些 2.5、为什么选择SpringCloud作为微服务架构 3

  6. (CSS学习记录):CSS3之动画

    (CSS学习记录):CSS3之动画 写在前面:参考哔哩哔哩黑马程序员pink老师教程 地址:https://www.bilibili.com/video/BV14J4114768?t=328p=26 目录 动画 动画序列 动画的基本使用 用keyframes 定义动画(类似定义类选择器) 元素使用动画 动画常用属性 动画简

  7. 深度学习 Pycharm中使用docker服务器

    深度学习 Pycharm中使用docker服务器 1.必要条件 1.Pycharm pro(专业版),pycharm CE(社区版没有这个功能) 2. 安装好docekr服务的docker服务器(可以是远程服务器,可以是本地) 3. docker 服务器上有准备好环境的容器 4. Pycharm 必须root用户或者sudo打开 2

  8. 摄影曝光口诀_通过学习曝光元素来改善摄影

    摄影曝光口诀_通过学习曝光元素来改善摄影 摄影曝光口诀 Most of us are guilty of coasting on our digital camera’s “auto” settings. But with a few quick lessons on the basic elements of proper exposure, you can learn how to be a more effect