[Java]一维二维数组的理解,定义与调用

一维数组

1.定义(类型名[] 数组名 = new 类型名[数组长度])

public class Hee {
	public static void main(String[] args){
		int[] arr = new int[5];//这里定义了一个长度为5的一维数组
		}
}

2.调用(数组名[索引])

import java.util.Scanner;
public class Hee {
	public static void main(String[] args){
		int[] arr = new int[5];//定义长度为5的一维数组
		int sum=0;//定义了一个sum变量,赋值
		for (int i=0;i<5;i++){//遍历整个一维数组
			arr[i]=i;//将下标的值逐个赋给数组(arr[0]=0...)
			sum+=arr[i];//求整个数组的和
		}
			System.out.println(sum);//输出整个数组的下标和
	}

}

3.理解

  • 整个数组存储数据的类型必须一致,像我刚刚举的那个例子,定义整个数组为int型,整个数组中就只能全部存储int型数据
  • 数组名.length:可获取整个数组的长度,是数组的一个属性,譬如上文定义了一个长度为5的arr数组,arr.length就等于5
  • 数组的下标范围:0~数组长度-1,上文用例的下标为0,1,2,3,4
  • 数组未赋值的话,默认值为0
  • 一维数组的内存情况这里可以大概的讲解一下:

JVM将自己的内存分为了寄存器,本地方法栈,方法和数据共享,方法栈和堆。
arr引用类型,保存的数据实质是内存中的地址。
我们定义的方法main存储在方法栈中,在方法栈中,我们new了一个长度为5的一维数组arr,我们数组中的数据在堆中存储,这个 arr指向堆中我们存储数据的首地址。

在这里插入图片描述 二维数组
1,定义
类型名[][] 数组名 = new 类型名[数组长度][数组长度]

public class Hee {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int[] arr = new int[5][6];//定义了一个包含5个长度为6的一维数组的二维数组
		
	}

}

用这种方法定义二维数组只能够定义包含n个长度一致的一维数组的二维数组,若想要定义n个长度不一致的二维数组,可以采用直接赋值的方式(int[][] arr={{1},{2,3},{4,5,6}};)。此外还有一种比较麻烦的方法,也不是特别常用,这里就不做介绍了。
2,调用(数组名[索引][索引])

public class Hee {
	public static void main(String[] args){
		int[][] arr ={{1},{2,3}};
		System.out.print(arr[0][0]);//输出arr[0][0]处的值
//输出结果为1
  }
	}

若需要遍历二维数组,可利用两层for循环和数组的length属性来进行实现

public class Hee {
	public static void main(String[] args){
		//Scanner sc = new Scanner(System.in);
		int[][] arr ={{1},{2,3},{4,5,6,7}};
		for (int i=0;i<3;i++){
			for (int j=0;j<arr[i].length;j++){
				System.out.print(arr[i][j]);//遍历输出整个二维数组
				System.out.print(" ");//输出空格
			}
			System.out.println();//换行
		}

  }
}

//这个是输出结果
1 
2 3 
4 5 6 7 


3.理解

  • 一个二维数组,相当于包含了n个一维数组,其中每个一维数组的长度可以相同或不同
  • 二维数组中存储的数据类型也必须一致
  • 二维数组的下标和一维数组的下标范围一致,包含的n个一维数组由0~n编号。
  • 二维数组的内存理解:拿一个实例来讲吧,arr[n]m,arr可以理解为指向arr[n]的首地址,arr[n]分别指向a[n][m]的首地址,具体的还是来看图示吧。图片来自互联网(这个图不是本人做的~)
    这一次要讲的内容就差不多了,文章中有什么不足或错误的话情读者们批评指正哦~
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值