Java学习第三天2021.7.21

今天就只学习了一个数组,虽然说是只学习了数组,但是数组的内容还是很丰富的,学会了数组,在学后面的一些存数据的容器就不是很难了,那就开始吧

一维数组

数组时另外一种存储数据的格式,他在内存中看来的话是一种特殊的变量,我们在前面学习变量的时候发现了变量只能存储一个数据,当存储第二个数据的时候就会覆盖掉前面的数据。而数组可以存储多个数据,他是一种容器。当然他也有优点和缺点

优点:可以存储多个数据
缺点:长度是固定的

数组的定义

上面说了数组是一种特殊的变量,那咱们联想到变量,在想起来变量的格式是:数据类型 变量名。数组和变量有相同的地方也有不同的地方,数组的定义格式是:数据类型[ ] 数组名 = new 数据类型[长度]。还有一种方法是:数据类型[ ] 数组名={ 数据 }。下面举一个例子

class demo1
{
	public static void main(String[] args){
		int[] a = new int(3);
		int[] b = {1,2,3};
	}
}

这是数组定义的两种格式,都是对的,但是一般使用第一种格式。

数组的赋值操作

数组定义完成之后可以对数组进行赋值操作。同时需要注意的是,数组定义完成之后里面是有值的,整型的默认的值是0,而字符串的默认为null。对于数组的赋值,有两种办法,直接进行赋值,还有用数组的下标(索引)来进行赋值。数组的下标是从0开始,到数组的长度-1,并且数组有个求长度的方法:数组名.length

class demo4
{
	public static void main(String[] args){
		int[] arr1 = {1,2,3,4};
		int[] arr2 = new int[3];
		arr2[0] = 1;
		arr2[1] = 2;
		arr2[2] = 3;
	}
}

在这里插入图片描述
并没有什么错误,也不知道是否把数据存入到了数组中,咱们通过下一个数组的取值来看看是否存入了。

数组的取值操作

数组的取值也有两种办法,第一种就是直接取值,第二种就是定义一个变量来接收数组里面的值,下面用代码来进行讲解

class demo4
{
	public static void main(String[] args){
		int[] arr1 = {1,2,3};
		int[] arr2 = new int[3];
		arr2[0] = 1;
		arr2[1] = 2;
		arr2[2] = 3;
		System.out.println(arr1[0]);
		System.out.println(arr1[1]);
		System.out.println(arr1[2]);

		int a1 = arr2[0];
		int a2 = arr2[1];
		int a3 = arr2[2];
		System.out.println(a1);
		System.out.println(a2);
		System.out.println(a3);
	}
}

在这里插入图片描述
可以显示出来存入的数据。

虽然看起来数组的应用很简单,打但是我们还需要做一些练习题还巩固一下

二维数组

二维数组在以后的工作中应用不多,因为二维数组的长度是固定的,这就有了很大的弊端,不过了解一下总是好一些的

二维数组的定义

二维数组的定义可以联想一维数组的定义

class demo5
{
	public static void main(String[] args){
		int[][] arr = new int[2][4];
	}
}

一点小小的补充

class demo5
{
	public static void main(String[] args){
		int[][] arr = new int[2][4];
		//这个是输出的arr这个数组的地址
		System.out.println(arr);
		//这个是输出的arr[1]这个数组所指向的地址
		//二维数组其实是数组嵌套了数组,本题中,第一个数组中存放的是另外两个数组的地址
		System.out.println(arr[1]);
	}
}

二维数组的存取

二维数据的存取直接上代码把

class demo6
{
	public static void main(String[] args){
		int[][] arr = new int[2][4];
		arr[0][0] = 1;
		arr[0][1] = 2;
		arr[0][2] = 3;
		arr[0][3] = 4;
		arr[1][0] = 5;
		arr[1][1] = 6;
		arr[1][2] = 7;
		arr[1][3] = 8;
		for(int i = 0;i<arr.length;i++){
			for(int j = 0;j<arr[i].length;j++){
				System.out.print(arr[i][j]+" ");
			}
			System.out.println();
		}
	}
}

在这里插入图片描述

练习

数组求和、平均值

需求:定义一个五个整数的数组,并且在里面放五个数字,要求输出这五个数字的和还有平均值
分析:
1.先创建空白项目并测试

class demo01
{
	//创建空白项目
	public static void main(String[] args){
	}
}

2.定义一个长度为5的数组

class demo01
{
	//创建空白项目
	public static void main(String[] args){
		//定义一个长度为5的数组
		int[] arr = new int[5];
	}
}

3.往数组中存入数字

class demo01
{
	//创建空白项目
	public static void main(String[] args){
		//定义一个长度为5的数组
		int[] arr = new int[5];
		arr[0] = 1;
		arr[1] = 2;
		arr[2] = 3;
		arr[3] = 4;
		arr[4] = 5;
	}
}

4.先用循环把所有的数字拿出来

class demo01
{
	//创建空白项目
	public static void main(String[] args){
		//定义一个长度为5的数组
		int[] arr = new int[5];
		arr[0] = 1;
		arr[1] = 2;
		arr[2] = 3;
		arr[3] = 4;
		arr[4] = 5;
		for(int i = 0;i<arr.length;i++){
			//这里面就是所有的数字
		}
	}
}

5.定义一个总和sum还有平均数average在循环前面

class demo01
{
	//创建空白项目
	public static void main(String[] args){
		//定义一个长度为5的数组
		int[] arr = new int[5];
		arr[0] = 1;
		arr[1] = 2;
		arr[2] = 3;
		arr[3] = 4;
		arr[4] = 5;
		int sum = 0;
		double average = 0.0;
		for(int i = 0;i<arr.length;i++){
			//这里面就是所有的数字
		}
	}
}

6.依次把数字加到sum里面,并把sum输出出来

class demo01
{
	//创建空白项目
	public static void main(String[] args){
		//定义一个长度为5的数组
		int[] arr = new int[5];
		arr[0] = 1;
		arr[1] = 2;
		arr[2] = 3;
		arr[3] = 4;
		arr[4] = 5;
		int sum = 0;
		double average = 0.0;
		for(int i = 0;i<arr.length;i++){
			//这里面就是所有的数字
			sum+=arr[i];
		}
		System.out.println(sum);
	}
}

7.在求平均数并且进行输出

class demo01
{
	//创建空白项目
	public static void main(String[] args){
		//定义一个长度为5的数组
		int[] arr = new int[5];
		arr[0] = 1;
		arr[1] = 2;
		arr[2] = 3;
		arr[3] = 4;
		arr[4] = 5;
		int sum = 0;
		double average = 0;
		for(int i = 0;i<arr.length;i++){
			//这里面就是所有的数字
			sum+=arr[i];
		}
		System.out.println(sum);
		average = (double)sum/arr.length;
		System.out.println(average);
	}
}

在这里插入图片描述

数组求最大值最小值

这个题目我就不一步一步的写了,只说方法和最后结果
需求:定义一个长度为5的整型数组,往里面放入五个数字并求出最大值和最小值
分析:
1.创建空白项目并进行测试
2.先定义长度为5的数组并放入五个数字
3.定义一个最大值max和一个最小值min
4.把数组第一个数字给max和min
5.循环数组并把数组的数字和max、min进行比较
6.输出最后的结果
代码如下

class demo02
{
	public static void main(String[] args){
		int[] arr = {1,2,3,4,5};
		int max = arr[0];
		int min = arr[0];
		for(int i = 0;i<arr.length;i++){
			if(arr[i]>max){
				max = arr[i];
			}
			if(arr[i]<min){
				min = arr[i];
			}
		}
		System.out.println("最大的数字是:"+max+",最小的数字是:"+min);
	}
}

在这里插入图片描述

冒泡排序

需求:定义一个长度为6的数组,并用冒泡排序对其进行排序
冒泡排序是比较基础的排序算法之一,其思想是相邻的元素两两比较,较大的数下沉,较小的数冒起来,这样一趟比较下来,最大(小)值就会排列在一端。整个过程如同气泡冒起,因此被称作冒泡排序。
分析:
1.创建项目并进行测试
2.先创建一个长度为6的数组并进行赋值
3.分析一下过程
4.这个排序过程总体来讲分为五大步骤,每一个步骤都能找到一个最大的放在这个数组的最后面
5.然后每个大步骤里是小步骤,先定义一个数字记录下标,是从0开始到长度-1为止,我们就比较这个数字作为下标的那个数和后面的那个数的大小,如果后面的大,那就不动,如果后面的小,则进行互换,然后数字+1。直到比到了最后的数字和倒数第二个数字。
6.循环输出数组
代码如下:

class demo03
{
	public static void main(String[] args){
		int[] arr = {1,5,4,9,10,2};
		int temp = 0;
		int jishu = 0;
		//先输出一次未排序的时候的数组
		System.out.print("未排序的时候:");
		for(int i = 0;i<arr.length;i++){
			System.out.print(arr[i]+" ");
		}
		System.out.println();
		//外层循环,表示找第几大的数
		for(int i = 0;i<arr.length-1;i++){
			//内层循环,各个值之间的比较
			for(int j = 0;j<arr.length-1-i;j++){
				if(arr[j]>arr[j+1]){
					temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
				}
				jishu++;
				//每一次比较之后都在进行输出,可以看得出来区别
				System.out.print("第"+jishu+"次:");
				for(int ij = 0;ij<arr.length;ij++){
					System.out.print(arr[ij]+" ");
				}
				System.out.println();
			}
		}
	}
}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值