[学习笔记]多维数组
来源:互联网 发布:php 访问sqlserver 编辑:程序博客网 时间:2024/05/20 18:02
多维数组中二维数组用的比较多,三维及三维以上的使用很多,下面我就简单罗列下二维数组。
二维数组动态初始化的语法格式:
数据类型[][] 数组名称 = new 数据类型[第一维的长度][第二维的长度];
例如:int[][] a;
数据类型[][] 数组名称;
例如:double[] a[];
数组名称 = new 数据类型[第一维的长度][第二维的长度];
以上三种语法在声明二维数组时的功能是等价的。同理,声明三维数组时需要三对中括号,中括号的位置可以在数据类型的后面,也可以在数组名称的后面,其它的依次类推。
多维数组的初始化也可以分为静态初始化(整体赋值)和动态初始化两种,其语法格式如下。
1. 静态初始化
int[][] m = {
{1,2,3},
{2,3,4}
};
在二维数组静态初始化时,也必须和数组的声明写在一起。数值书写时,使用两个大括号嵌套实现,在最里层的大括号内部书写数字的值。数值和数值之间使用逗号分隔,内部的大括号之间也使用逗号分隔。
由该语法可以看出,内部的大括号其实就是一个一维数组的静态初始化,二维数组只是把多个一维数组的静态初始化组合起来。
2.动态初始化
示例代码:
byte[][] b = new byte[2][3];
int m[][];
m = new int[4][4];
和一维数组一样,动态初始化可以和数组的声明分开,动态初始化只指定数组的长度,数组中每个元素的初始化是数组声明时数据类型的默认值。例如上面初始化了长度为2X3的数组b,和4X4的数组m。
使用这种方法,初始化出的第二维的长度都是相同的,如果需要初始化第二维长度不一样的二维数组,则可以使用如下的格式:
int n[][];
n = new int[2][]; //只初始化第一维的长度
//分别初始化后续的元素
n[0] = new int[4];
n[1] = new int[3];
这里的语法就体现了数组的数组概念,在初始化第一维的长度时,其实就是把数组n看成了一个一维数组,初始化其长度为2,则数组n中包含的2个元素分别是n[0]和n[1],而这两个元素分别是一个一维数组。后面使用一维数组动态初始化的语法分别初始化n[0]和n[1]。
- <span style="font-size:18px;">public class Lesson{
- public static void main(String [] args){
- //二维数组的声明方式:
- //数据类型 [][] 数组名称 = new 数据类型 [长度][长度] ;
- //数据类型 [][] 数组名称 = {{123},{456}} ;
- /*
- int [][] arr = {{123},{456}}; //定义了两行三列的二维数组并赋值
- for(int x = 0; x<arr.length; x++){ //定位行
- for(int y = 0; y<arr[x].length; y++){ //定位每行的元素个数
- System.out.print(arr[x][y]);
- }
- System.out.println("/n");
- }
- */
- int [][] num = new int [3][3]; //定义了三行三列的二维数组,静态初始化
- num[0][0] = 1; //给第一行第一个元素赋值
- num[0][1] = 2; //给第一行第二个元素赋值
- num[0][2] = 3; //给第一行第三个元素赋值
- num[1][0] = 4; //给第二行第一个元素赋值
- num[1][1] = 5; //给第二行第二个元素赋值
- num[1][2] = 6; //给第二行第三个元素赋值
- num[2][0] = 7; //给第三行第一个元素赋值
- num[2][1] = 8; //给第三行第二个元素赋值
- num[2][2] = 9; //给第三行第三个元素赋值
- for(int x = 0; x<num.length; x++){ //定位行
- for(int y = 0; y<num[x].length; y++){ //定位每行的元素个数
- System.out.print(num[x][y]);
- }
- System.out.println("/n");
- }
- }
- }
- //数组值arr[x][y]表示指定的是第x行第y列的值。
- //在使用二维数组对象时,注意length所代表的长度,
- //数组名后直接加上length(如arr.length),所指的是有几行(Row);
- //指定索引后加上length(如arr[0].length),指的是该行所拥有的元素,也就是列(Column)数目。</span>
附加一段矩阵加法的代码:
- /**
- * 封装了矩阵常用的算法
- * @author dell
- *
- */
- public class Matrix {
- /**
- * 打印指定的矩阵
- * @param c
- */
- 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();
- }
- }
- /**
- * 矩阵加法
- * @param a
- * @param b
- * @return
- */
- 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,3},
- {2,4,7},
- {6,4,9}
- };
- int[][] b = {
- {3,3,3},
- {2,4,7},
- {1,4,9}
- };
- int[][] c = add(a, b);
- print(c);
- }
- }
多维数组中二维数组用的比较多,三维及三维以上的使用很多,下面我就简单罗列下二维数组。
二维数组动态初始化的语法格式:
数据类型[][] 数组名称 = new 数据类型[第一维的长度][第二维的长度];
例如:int[][] a;
数据类型[][] 数组名称;
例如:double[] a[];
数组名称 = new 数据类型[第一维的长度][第二维的长度];
以上三种语法在声明二维数组时的功能是等价的。同理,声明三维数组时需要三对中括号,中括号的位置可以在数据类型的后面,也可以在数组名称的后面,其它的依次类推。
多维数组的初始化也可以分为静态初始化(整体赋值)和动态初始化两种,其语法格式如下。
1. 静态初始化
int[][] m = {
{1,2,3},
{2,3,4}
};
在二维数组静态初始化时,也必须和数组的声明写在一起。数值书写时,使用两个大括号嵌套实现,在最里层的大括号内部书写数字的值。数值和数值之间使用逗号分隔,内部的大括号之间也使用逗号分隔。
由该语法可以看出,内部的大括号其实就是一个一维数组的静态初始化,二维数组只是把多个一维数组的静态初始化组合起来。
2.动态初始化
示例代码:
byte[][] b = new byte[2][3];
int m[][];
m = new int[4][4];
和一维数组一样,动态初始化可以和数组的声明分开,动态初始化只指定数组的长度,数组中每个元素的初始化是数组声明时数据类型的默认值。例如上面初始化了长度为2X3的数组b,和4X4的数组m。
使用这种方法,初始化出的第二维的长度都是相同的,如果需要初始化第二维长度不一样的二维数组,则可以使用如下的格式:
int n[][];
n = new int[2][]; //只初始化第一维的长度
//分别初始化后续的元素
n[0] = new int[4];
n[1] = new int[3];
这里的语法就体现了数组的数组概念,在初始化第一维的长度时,其实就是把数组n看成了一个一维数组,初始化其长度为2,则数组n中包含的2个元素分别是n[0]和n[1],而这两个元素分别是一个一维数组。后面使用一维数组动态初始化的语法分别初始化n[0]和n[1]。
- <span style="font-size:18px;">public class Lesson{
- public static void main(String [] args){
- //二维数组的声明方式:
- //数据类型 [][] 数组名称 = new 数据类型 [长度][长度] ;
- //数据类型 [][] 数组名称 = {{123},{456}} ;
- /*
- int [][] arr = {{123},{456}}; //定义了两行三列的二维数组并赋值
- for(int x = 0; x<arr.length; x++){ //定位行
- for(int y = 0; y<arr[x].length; y++){ //定位每行的元素个数
- System.out.print(arr[x][y]);
- }
- System.out.println("/n");
- }
- */
- int [][] num = new int [3][3]; //定义了三行三列的二维数组,静态初始化
- num[0][0] = 1; //给第一行第一个元素赋值
- num[0][1] = 2; //给第一行第二个元素赋值
- num[0][2] = 3; //给第一行第三个元素赋值
- num[1][0] = 4; //给第二行第一个元素赋值
- num[1][1] = 5; //给第二行第二个元素赋值
- num[1][2] = 6; //给第二行第三个元素赋值
- num[2][0] = 7; //给第三行第一个元素赋值
- num[2][1] = 8; //给第三行第二个元素赋值
- num[2][2] = 9; //给第三行第三个元素赋值
- for(int x = 0; x<num.length; x++){ //定位行
- for(int y = 0; y<num[x].length; y++){ //定位每行的元素个数
- System.out.print(num[x][y]);
- }
- System.out.println("/n");
- }
- }
- }
- //数组值arr[x][y]表示指定的是第x行第y列的值。
- //在使用二维数组对象时,注意length所代表的长度,
- //数组名后直接加上length(如arr.length),所指的是有几行(Row);
- //指定索引后加上length(如arr[0].length),指的是该行所拥有的元素,也就是列(Column)数目。</span>
附加一段矩阵加法的代码:
- /**
- * 封装了矩阵常用的算法
- * @author dell
- *
- */
- public class Matrix {
- /**
- * 打印指定的矩阵
- * @param c
- */
- 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();
- }
- }
- /**
- * 矩阵加法
- * @param a
- * @param b
- * @return
- */
- 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,3},
- {2,4,7},
- {6,4,9}
- };
- int[][] b = {
- {3,3,3},
- {2,4,7},
- {1,4,9}
- };
- int[][] c = add(a, b);
- print(c);
- }
- }
- [学习笔记]多维数组
- C++学习笔记--指针和多维数组
- 【C++学习笔记】11_多维数组
- C++primer学习笔记-----3.6多维数组
- Java学习笔记——多维数组
- 【python学习笔记】多维数组初始化
- PHP学习笔记之数组和多维数组
- c++primer学习笔记(4.4)多维数组
- java学习笔记5.22多维数组以及对象和类
- python数据结构学习笔记-2016-10-17-03-多维数组
- 学习笔记---多维数组及多级指针的使用
- C语言学习笔记(19) 多维数组和多维指针分析
- PHP 多维数组排序学习
- Java学习:输出任意多维数组(多维数组非矩形)
- C#学习笔记——多维数组与交错数组的区别
- JAVA学习笔记21——多维数组+数组常用方法
- C++学习笔记11——动态数组与多维数组
- 《Javascript权威指南》学习笔记之十二:数组、多维数组和符合数组(哈希映射)
- 为什么尽量以const,enum,inline替换#define?
- [学习笔记]打印出该月的日期表格,日历形式
- AndroidStudio上github使用
- 2016SDAU编程练习二1001
- 和同事相处的30个原则(受益)
- [学习笔记]多维数组
- [学习笔记] JAVA菜鸟入门篇-JDK安装以及配置
- [学习笔记]struts.xml配置详解(所有基本配置,包括通配符)
- [学习笔记]在struts2.0框架中,多struts.xml与多applicationContext.xml配置的方法
- activiti自定义流程之整合(六):获取我的申请任务
- 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.7.2
- [学习笔记]jsp web.xml文件的作用及基本配置
- [学习笔记]Java如何处理EXCEL的读取
- IOS开发笔记——禁用手势滑动返回功能