Java复习之路(第五天 数组排序)

Java基础

数组:

概念:数组Array,标志是[ ],

是用于存储多个相同的类型数据的集合,int [], string[ ],byte [].

想要获取数组中的元素值,可以通过下表来获取,下表是从0开始的

创建数组:

一般可以分为静态创建和动态的创建

获取数组里面的值的方法:

创建数组:

动态创建:

表示创建的内容可以进行进行随机的输入

int [ ] a=new int [10];

1.在内存中开辟的连续区间存放数据

2.把数据完成初始化,设置为默认值,默认值是0;每个数据都是0

int类型的数据的默认值是0,相当于存了10个0

3.在数组中创建完成后,会生成唯一的地址,16进制的形式

4.把地址值交给引用型的变量a进行保存,就是创建的数组的名字

静态创建:

静态的输入代表的内容,表示输入的东西固定

int [] a= new  int  []  {1,2,3,4,5}

int [ ] a={1,2,3,4,5}

练习一:

在数组中存入Hello

静态的创建方法(2种方法)

		private static void method2() {
		//静态的创建,声明数组的同时完成了初始化
		char[] c2=new char[] {'h','e','l','l','0'};
		char[] c3={'h','e','l','l','0'};
		System.out.println(c2);
		System.out.println(c3);
		}

动态的创建方法(方法)

                private static void method1() {
			char[] c=new char[10];
			//动态创建数组
			c[0]='H';
			c[1]='e';
			c[2]='l';
			c[3]='l';
			c[4]='o';
			System.out.println(c);
			
		}

数组的长度:

length的属性

数组一旦创建,长度不可以变化

允许0长度的数组

数组的遍历

知识点:利用for循环,代表的是下标,从零开始,里面的条件写i<a.length或者是i<=a.length-1

数组的遍历的形式

for(int i=0;i<a.length;i++){

       syso(a[i]);

}

问题一:

遍历数组,存入1-10

	private static void method1() {
		int [] array= {0,1,2,3,4,5,6,7,8,9};
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]);
		}
	}
}

动态的创建和遍历:

private static void method2() {
		int [] a=new int[10];
		for (int i = 0; i < a.length; i++) {
			
		}
		
	}

 Arrays.toString(数组的名称),打印出来的结果是数组的形式

	private static void method2() {
		int [] a=new int[10];
		for (int i = 0; i < a.length; i++) {
                        //表示的是第一个元素a[0]=0+1
                        //表示的是第二个元素a[1]=1+1
			a[i]=i+1;
		}
		System.out.println(a);  //[I@7852e922,直接打印是打引的地址
		System.out.println(Arrays.toString(a));//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
	}

问题二:

输出每月的天数

	private static void method3() {
		//创建数组,存放天数
		int[] a= {31,29,31,30,31,30,31,31,30,31,30,31};
		for (int i = 0; i < a.length; i++) {
			//System.out.println(a[i]);
			int b=i+1;
			System.out.println(b+"月有"+a[i]+"天");
		}
	}

问题三:

创建一个随机的数组,获取100以内的数组

难点一:如何实现随机获取100以内的随机数

array[i]=new Random().nextInt(100);

	private static void method4() {
		int [] array=new int[5];
		for (int i = 0; i < array.length; i++) {
			array[i]=new Random().nextInt(100);
		}
		System.out.println(Arrays.toString(array));
	}

冒泡排序:

概念:是一种计算器科学领域的简单的排序算法,访问过要排序的元素列,依次比较两个相邻的元素

如果他们的顺序错误就把他们交换过来,走访的元素的工作是简单地重复地进行,直到没有元素需要交换

也就是说元素已经完成排序

形式:

相邻的位置比较,如果数值大就会选择往后放,直到没有数据调换为止

代码的实现

1.双层for循环,外层控制轮数,5个数,比四轮

for (int i = 0; i < array.length-1; i++) 

2.内层的循环的控制,比大小,换位置

for(int j=0;j<a.length-1,j--){

       作比较(a[j]>a[j+1])(代码代表的是相邻的连两个数字作比较)

       换位置(收尾相连)

}

代码实现:

	private static void method4() {
		int [] array=new int[5];
		for (int i = 0; i < array.length; i++) {
			array[i]=new Random().nextInt(100);
		}
		for (int i = 0; i < array.length-1; i++) {
			//此处的-i的含义是第一次冒泡之后就会减少比较的次数
			for (int j = 0; j < array.length-1-i; j++) {
				if (array[j]>array[j+1]) {
					int a;
					a=array[j+1];
					array[j+1]=array[j];
					array[j]=a;
				}
			}
			
		}
		System.out.println(Arrays.toString(array));	
	}

变量:

定义:可以改变的数,称之为变量,一般通过三部分来描述一个变量。变量类型,变量名=变量值

其中三部分都是可以改变的,可以根据需要来确定

变量使用原则:就近原则,尽可能的控制到最小的范围

局部变量:

定义在方法里面的,或者局部的代码块里面

注意:必须手动的进行初始化,来分配内存,作用域也就是方法里或者是局部的代码块里面,方法运行完内存也就是释放了

成员变量:

定义在类类里面,方法外

注意:不用进行初始化,方法自动的被初始化为默认值,作用域是整个类中,类消失了,变量才释放

类的默认值

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值