栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java一维数组和二维数组详解----配合实例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java一维数组和二维数组详解----配合实例

一.数组的特点:

1.数组是有序排列

2.数组是属于引用数据类型的变量,数组的元素,既可以是基本数据型也可以是引用数据类型

3.创建数组对象会在内存中开辟一整块连续的内存空间

4.数组的长度一旦确定就不能修改

二.一维数组的声明与初始化

1. int [] array; 声明数组

array=new int []{12,34,56,78};数组的静态初始化

2. 数组的动态初始化

int [] arr =new int [5];

3.动态数组的赋值

arr[0]=11;

arr[1]=12;

arr[2]=13;

arr[3]=14;

arr[4]=15;

注意:数组下标从0开始,数组里有5个数据元素,数组下标就到4。

4.数组的长度

System.out.println(arr.length);

执行上句即可得到数组长度

5.遍历数组

for(int i=0;i

System.out.println(arr[i]);

}

上面的语句就会不断循环的读出数组里的数据元素。

第一次读出arr[0]=11;

第二次读出arr[1]=12;

第三次读出arr[2]=13;

第四次读出arr[3]=14;

第五次读出arr[4]=15;

6.数组元素的默认初始化值

int [] a=new int[4];

for(int i=0;i

System.out.println(a[i]);

}

上述数组没有赋初始值,由于数组是整型的,所以它的数据元素的默认值是0;不同类型的数组的数据元素的默认初始值不同。

>数组元素是float型:默认值:0.0。

>数组元素是boolean型:默认值:false或true。

>数组元素是char型:默认值:0或u000,非’0’。

>数组元素是引用数据类型:默认值:null

例子:

String[] b=new String[5];

System.out.println(b[0]);

if(b[0]==null){

System.out.print(“true”);

}

输出是null,true。

三.一维数组的简单运用

1.输入学生的个数,输入相应的成绩,根据的学生的成绩输出相应的等级。

//1.使用Scanner,读入学生的个数
		Scanner scan=new Scanner(System.in);
		System.out.println("请输入学生个数:");
		int num=scan.nextInt();
		
		//2.创建数组,存储学生的成绩
		int[] arr= new int[num];
		System.out.println("请输入"+num+"学生成绩:");
		for(int i=0;imax) {
				max=arr[i];
			}
		}
		
		//4.根据每个学生的成绩与最高分的差值,
		//得到每个学生的等级,并输出等级和成绩
		char level;
		for(int i=0;i

输出结果:

 2.一数组的反转

//反转数组中的元素
		int[] arr = {10,80,90, 4, 5, 6};
		//思路:首尾元素互换
		for(int i=0;i

输出结果是:6,5,4,90,80,10,

四.二位数组的应用

1.二维数组的声明和初始化

a.静态初始化

int [][] arr=new int [][]{ {1,2,3},{4,5,6},{7,8,9}};

二位数组里面就是包含了多个一维数组

b.动态初始化

int [][] arr1=new int [3][2];

int [][] arr2=new int [3][];

c.注意一下声明的意思:

int [][] arr2=new int [3][];

arr2[1]=new int[4];

2.获取二维数组的长度

int [][] arr3=new int [][]{ {1,2,3},{4,5,},{7,8,9}};

System.out.println(arr3.length);---->值是3,参考上图

System.out.println(arr3[1].length);----->值是2

3.遍历二位数组

int [][] arr3=new int [][]{ {1,2,3},{4,5,},{7,8,9}};

for(int i=0;i<3;i++){

for(int j=0;j

System.out.print(arr3[i][j]+” “);

}

System.out.println();

}

4.二位数组的默认初始化值

int [][]arr=new int [3][4];

System.out.println(arr[0]);//值是地址

System.out.println(arr[0][0]);//值是0;

System.out.println(arr);

arr[0]:值是一维地址   [I@1f32e575,

arr[0][0]: 值是一维数组里元素的值,int型默认值  0

arr:值是二位数组的地址,[[I@279f2327

其他数据类型类似,只不过不同类型的数据元素的默认值不同,比如float默认值是0.0.

注意:

String [][] str=new String[4][2];

System.out.println(str[1]);

System.out.println(str[1][0]);

String [][] str2=new String[4][];

System.out.println(str2[1]);

System.out.println(str2[1][1]);

str[1]地址,str[1][0]=null,str2[1]=null;str2[1][1]会报错。由于str2只在堆里开了4个内存空间的一维数组,数组是引用类型,其值默认为null。而一维数组里的元素所在的内存空间还为开辟,无法指向,str2[1][1]会报错。把String声明成int型,str2[1]的默认值还是null。原因就是数组是引用类型。

难点理解:当堆里的东西没有栈指针指向时,随着生命周期的结束,栈里指针出栈释放,堆里也因没有栈指针指向也被释放,内存也就空出来了。

易错点:

int [] a=new int [5];

a[2]=5;

a=new int[4];

System.out.println(a[2]);

这时a[2]为空,new出来的东西放在堆里,a被在次new,即在堆里在重新开辟另一块空间,让a指向新的空间,原内存空间丢失。

五.二位数组的简单应用

1.求二维数组所有元素值的和。

int sum=0;

int[][]arr=new int[][] {{1,2,3},{4,5,6},{7,8,9}};

for(int i=0;i

for(int j=0;j

sum+=arr[i][j];

}

}

System.out.println(sum);

2.杨辉三角

方法一:



int [][]arr=new int[5][];

for(int i=0;i

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/439717.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号