二维数组
来源:互联网 发布:马鞍山网络大学准考证 编辑:程序博客网 时间:2024/05/29 12:27
如果一维数组中的各个元素仍然是一个数组,那么它就是一个二维数组。二维数组常用于表示表,表中的信息以行和列的形式组织,第一个下标代表元素所在的行,第二个下标代表元素所在的列。
1. 二维数组的创建与应用
1. 二维数组的创建
二维数组可以看做是特殊的一维数组,因此,二维数组的创建同样有两种方式。
1. 先声明,再用new运算符进行内存分配
//声明二维数组的语法数组元素的类型 数组名字[][];数组元素的类型[][] 数组名字;//声明二维数组int myarr[][];
同一维数组一样,二维数组在声明时也没有分配内存空间,同样使用new关键字来分配内存,然后才可以访问每个元素。对于高维数组,有两种为数组分配内存的方式:
(1). 直接为每一维分配内存空间
//为每一维分配内存a =new int[2][4];
上述代码创建了二维数组a,二维数组a中包括两个长度为4的一维数组,内存分配图如下图所示:
(2). 分别为每一维分配内存
//分别为每一维分配内存a = new int[2][];a[0] =new int[2];a[1] =new int[3];
2. 声明的同时为数组分配内存
第二种方式同第一种实现的功能相同。使用这种方式为二维数组分配内存时,首先最左边维数的内存,然后单独地给余下的维数分配内存。通过第二种方式为二维数组分配内存,如图所示:
3. 二维数组的初始化
二维数组的初始化与一维数组的初始化类似,同样可以使用大括号完成。语法如下所示:
type arrayname[][]={value1,value2,value3.....valuen};//type:数组数据类型//arrayname:数组名称,一个合法的标识符//value:数组中各元素的值//初始化二维数组int myarr[][]={{12,0},{23,8}};
初始化二维数组后,要明确数组的下标都是从0开始的。例如,上面的代码中myarr[1][1]的值为8。int型二维数组是以 int a[][]来定义的,所以可直接给 a[x][y] 赋值。
4. 使用二维数组
二维数组在实际应用中用的非常广泛。那么就需要我们牢牢的掌握这些知识,接下来我们通过一段简单的代码来进一步的了解。
public class Matrix{//创建类 //主方法 public static void main(String[] args){ //定义二维数组 int a[][]=new int[3][4]; for(int i=0;i<a.length;i++){ //循环遍历数组中的每个元素 for(int j=0;j<a[i].length;j++){ //将数组中的元素输出 System.out.print(a[i][j]); } //输出空格 System.out.println(); } }}
运行结果:
对于整型的二维数组,创建成功之后系统会赋值给数组中每个元素初始值。
2. 数组的基本操作
1. 遍历数组
遍历数组就是获取数组中的每个元素。通常遍历数组都是使用for循环来实现的。遍历一维数组很简单,也很好理解,接下来我们将主要介绍如何遍历二维数组。遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度。
public class Trap{//创建类 public static void main(String[] args){ //定义二维数组 int b[][]=new int[][]{{1},{2,3},{4,5,6}}; //循环遍历二维数组中的每个元素 for(int k=0;k<b.length;k++){ for(int c=0;c<b[k].length;c++){ //将数组中的元素输出 System.out.print(b[k][c]); } //输出空格 System.out.println(); } }}
运行结果如下:
练习,打印一个矩阵相加的计算
//关于矩阵的练习public class Matrix { public static void print(int[][] c) { //静态初始化一个数组 for (int i = 0; i < c.length; i++) { for (int j = 0; j < c.length; j++) { System.out.print(c[i][j]+"\t"); } System.out.println(); } } public static int[][] add(int[][] a , int[][] b){ int[][] c =new int[a.length][a.length]; for (int i = 0; i < c.length; i++) { for (int j = 0; j < c.length; j++) { c[i][j] = a[i][j]+b[i][j]; } } return c; } public static void main(String[] args){ int[][] a = { {1,3}, {2,4} }; int[][] b ={ {3,4}, {5,6} }; int[][] c =add(a,b); print(c); }}
阅读全文
0 0
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- BZOJ1072 [SCOI2007]排列perm
- linux 下装 mono,使apache 运行 asp.net
- multi-thread(三)ExecutorService
- Timer,TimerTask的用法
- Java核心代码(二)构造+语句执行顺序
- 二维数组
- NOIP 2017 提高组 初赛
- BZOJ1426 玄学概率DP
- 常用java路径
- Reserved-6
- MongoDB常用查询
- Java核心代码(一)认识ClassLoader & Thread
- Angular中的MVVM模式
- notepad++中快速插入当前时间方法