Java二维数组如何使用? Java中二维数组的使用

java\u4e8c\u7ef4\u6570\u7ec4\u600e\u4e48\u5b9a\u4e49\uff1f

java\u4e2d\u4f7f\u7528 [][] \u6765\u5b9a\u4e49\u4e8c\u7ef4\u6570\u7ec4\uff0c\u5b9a\u4e49\u6570\u7ec4\u65f6\u4e5f\u53ef\u540c\u65f6\u521d\u59cb\u5316\u3002
\u4e24\u79cd\u521d\u59cb\u5316\u5f62\u5f0f\uff1a
\u683c\u5f0f1\u3001\u52a8\u6001\u521d\u59cb\u5316
\u6570\u636e\u7c7b\u578b \u6570\u7ec4\u540d [ ][ ] = new \u6570\u636e\u7c7b\u578b[m][n]\u6570\u636e\u7c7b\u578b [ ][ ] \u6570\u7ec4\u540d = new \u6570\u636e\u7c7b\u578b[m][n]\u6570\u636e\u7c7b\u578b [ ] \u6570\u7ec4\u540d [ ] = new \u6570\u636e\u7c7b\u578b[m][n]
\u4e3e\u4f8b\uff1aint [ ][ ] arr=new int [5][3]; \u4e5f\u53ef\u4ee5\u7406\u89e3\u4e3a\u201c5\u884c3\u4f8b\u201d\u3002
\u683c\u5f0f2\u3001 \u9759\u6001\u521d\u59cb\u5316
\u6570\u636e\u7c7b\u578b [ ][ ] \u6570\u7ec4\u540d = {{\u5143\u7d201,\u5143\u7d202....},{\u5143\u7d201,\u5143\u7d202....},{\u5143\u7d201,\u5143\u7d202....}.....};
\u4e3e\u4f8b\uff1aint [ ][ ] arr={{22,15,32,20,18},{12,21,25,19,33},{14,58,34,24,66},}\u3002

\u4e8c\u7ef4\u6570\u7ec4\u7684\u4f7f\u7528\u4e3e\u4f8b\uff1a
\u4f8b1\u3001\u5b9a\u4e49\u4e00\u4e2a\u4e8c\u7ef4\u6570\u7ec4 int[ ][ ] arr = {{5,7,9},{12,14,16,18},{23,25,36,47},{22,54,65,15},{22,34}};\u6c42\u6570\u7ec4\u5143\u7d20\u7684\u548c\u3002

\u8f93\u51fa\u7ed3\u679c\uff1a

\u4f8b2\u3001\u4f7f\u7528\u4e8c\u7ef4\u6570\u7ec4\u5b58\u50a8\u73ed\u4e0a\u4e94\u4e2a\u5b66\u751f\u4e09\u95e8\u529f\u8bfe\u7684\u8003\u8bd5\u6210\u7ee9\uff0c\u8981\u6c42\u8f93\u51fa\u6bcf\u4e00\u4e2a\u5b66\u751f\u7684\u603b\u5206\u3001
\u5e73\u5747\u5206\u3001\u6700\u9ad8\u5206\u3001\u6700\u4f4e\u5206--------->\u4f7f\u7528\u5c31\u6309\u76d8\u5f55\u5165\u7684\u65b9\u5f0f\u5f55\u5165\u6570\u636e\u3002


\u4e8c\u7ef4\u6570\u7ec4\uff1aint
num[][]=new
int[3][];
\u8fd9\u91cc\u5b9a\u4e49\u7684\u662f3\u884c\u7684\u4e8c\u7ef4\u6570\u7ec4\uff0c\u5217\u6570\u53ef\u4ee5\u9010\u4e2a\u5b9a\u4e49\uff0c\u4e5f\u5c31\u662f\u6bcf\u884c\u7684\u5217\u6570\u53ef\u4ee5\u4e0d\u76f8\u540c\u3002\u4f46\u540e\u9762\u5b9a\u4e49\u7684\u5217\u6570\u7684\u65f6\u5019\u8981\u7528NEW\u6765\u5b9a\u4e49\u3002\u4f8b\uff1a
int
num[][]=new
int[3][];
\u5b9a\u4e49\u4e00\u4e2a\u4e3a3\u884c\u7684\u4e8c\u7ef4\u6570\u7ec4\u3002
int
num[0]=new
int[3];
\u5b9a\u4e49\u7b2c\u4e00\u884c\u4e3a3\u5217
int
num[1]=new
int[2];
\u5b9a\u4e49\u7b2c\u4e8c\u884c\u4e3a2\u5217
int
num[2]=new
int[3];
\u5b9a\u4e49\u7b2c\u4e09\u884c\u4e3a3\u5217

那是行和列的意思,例如: int[][] a = new int[3][5]; //也就是说建立一个3行5列的二维数组 你大概没弄明白java数组定义,多看看书,java中实际上没有多维数组的概念。只有一维数组。多维数组实际上是一维数组的数组。这和c++中的多维数组概念是不同的。 举个例子:
int[][] int1=new int[3][2];
int1[i]引用第i个字数组,也就是二维表中的第i行。它本身也是一个数组,int1[i][i]引用这个数组的第j项。

对于 int[][] int1=new int[3][];
new语句执行后,int1被在栈中分配了空间,引用一个三维数组;三维
数组也被分配了空间(在堆中),三位数组的元素是指向int数组的引用;
而int数组没有分配空间,所以三维数组中的元素的值都是null。

二维数组,也可以理解为用一维数组保存的元素为一维数组。对于三维数组,等等,都可以这样划分。不过我们在编程中使用三维以上的数组比较少。因为那样使用起来非常不方便。下面我们来学习二维数组的声明。其声明同一位数组一样,可以先声明再分配内存,也可以声明时分配内存。

二维数组的声明及内存分配

第一种,先声明再分配内存的方式
数组声明: 数据类型 数组名[][];
内存分配: 数组名 = new 数据类型[行的个数][列的个数];
举例: 假如我们需要统计一个象棋上放的是黑棋还是白棋。这时,我们可以建立一个坐标,即以象棋盘的两边建立坐标轴。这时,我们可以这样定义这个二维数组:
声明数组: int Chess[][];
内存分配 Chess= new int[64][64];

第二种,即声明时即分配内存的方式。
使用格式是: 数据类型 数组名[][] =new 数据类型 [行的个数][列的个数];
使用上个步骤中的例子,我们可以将数组的声明和分配内存写成以下方式:
声明即分配内存:int Chess[][] = new int[64][64];

二维数组的赋值

二维数组的赋值,同一维数组类似。只是在{}中的每个元素又是每个一维数组。如下格式:
数据类型 数据名[][]={
{值1,值2,值3,值4 }, //第一行数据
{值5,值6,值7,值8}, //第二行数据
...,
}
二维数组中,可以有列数不相等的数组。即每一行的列数不同时。我们需要对每一行进行赋值。

对于这两种二维数组。我们分别来进行分别举例进行赋值。第一种是:列数相同的数组
其赋值格式如下:
String ClassRoom[][]={
{"小王","小李","小张"},
{"小红","小明","小花"},
}
即第一行的人数和第二行的人数相同。

第二种:即列数不相等的数组的赋值格式如下:
String ClassRoom[][]={
{"小王","小李","小张"},
{"小红","小明","小花"},
{"小雨","小风","小平","小雷"},
{"小单"}
}
看上述例子。对于不同的行,其相应的列数是不同的。

二维数组元素的输入输出

二维数组元元素的访问及输出同一维数组一样,只是多了一个下标而已。在循环输出时,需要里面再内嵌一个循环,即双重循环来输出二维数组中的每一个元素。下面,我们来展示一个例子,把上面学过的知识来一块使用。这里使用列数不相等的二维数组:
例子是输出二维数组中的每一行的数字。

二维数组:int num[][]=new int[3][];这里定义的是3行的二维数组,列数可以逐个定义,也就是每行的列数可以不相同。但后面定义的列数的时候要用NEW来定义。例:
int num[][]=new int[3][]; 定义一个为3行的二维数组。
int num[0]=new int[3]; 定义第一行为3列
int num[1]=new int[2]; 定义第二行为2列
int num[2]=new int[3]; 定义第三行为3列

分别表示1维下标,2维下标N维数组int []....(n个元素)...[] a=new int[1维数组元素个数][2维数组元素个数].......[n维数组元素个数] 下标就是索引的意思 short[][] numfour=new short[5][8]; //定义一个short类型的数组同时为它分配1维数目为5,2维数目为8的空间大小

一般使用是这么做

String[][] strArray = new String[]x[y];//定义数组xy表示数组的大小,最多能放多少个元素
strArray[0][0] = "1";//数组初始化
二维数组和一维数组没有太大的区别,你可以把它理解为数组的数组
上例忠你就可以把它理解为商族x=String[x] 他中间的每个元素都是数组y=String[y];
这样就好理解strArray[0][0]="1" ,设置数组x的第一个元素(数组y),的第一个元素为1

  • java涓庝箞缁欎簩浣鏁扮粍璧嬪
    绛旓細棣栧厛瑕佹槑鐧 浜岀淮鏁扮粍鏈川涓婃槸浠ユ暟缁勪綔涓烘暟缁勫厓绱犵殑鏁扮粍锛屽嵆鈥滄暟缁勭殑鏁扮粍鈥濓紱java涓鏈変袱绉嶆柟寮忕粰浜岀淮鏁扮粍璧嬪硷紝绗竴锛屽0鏄庡垯璧嬪硷紝浠g爜濡備笅锛歩nt[][] array ={{1,2,},{1,2,5},{1,2,5}} ;绗簩锛屽厛澹版槑锛屽啀璧嬪硷紝浠g爜濡備笅锛歩nt[][] array;array[0][0] = 1;array[0][1]=2;渚濇绫绘帹...
  • java濡備綍鍒涘缓浜岀淮鏁扮粍杩涜瀛︾敓濮撳悕,瀛﹀彿,鎴愮哗涓変釜淇℃伅鐨勫瓨鍌,浣跨敤for...
    绛旓細1銆佸垎鏋愰鐩紝闇瑕佸瓨鍌ㄥ鍚嶅鍙锋垚缁╋紝鍥犳锛浜岀淮鏁扮粍闇瑕佸畾涔夋垚瀛楃涓茬被鍨 濮撳悕 瀛﹀彿 鎴愮哗 0 1 2 0[] [] [] 1[] [] [] 2[] [] []鏁扮粍鐨勬瘡鍒楀瓨鍌ㄥ唴瀹规槸鍥哄畾鐨勶紝涓琛屼唬琛ㄤ竴涓鐢燂紝閬嶅巻杩囩▼宓屽for寰幆灏卞彲浠ラ亶鍘嗗叏閮ㄥ鐢燂紝int n=input;String stu[][] =new String...
  • java楂樻墜:java瀹氫箟浜岀淮鏁扮粍闂
    绛旓細int a[][] = new int[3][2]; 琛ㄧず瀹氫箟涓涓笁琛屼簩鍒楃殑浜岀淮鏁扮粍锛屼絾鏄痑[0] = {1,6}; 鏄涓缁存暟缁勮繘琛岃祴鍊硷紝鑰宎鏄簩缁存暟缁勬棤娉浣跨敤涓缁存暟缁勭殑璧嬪兼柟娉曪紝鎵浠ョ▼搴忎細鎶ラ敊銆傝浠g爜鐨勬纭柟娉曞簲璇ユ槸锛歩nt a[][] = new int[3][2];a[0][0]=1;a[0][1]=6;...
  • java鐨勪簩缁存暟缁
    绛旓細鎵浠ヤ笂涓鍙ョ殑鎰忔濇槸 缁欒繖涓暣鍨嬫暟缁勫紩鐢 鍒嗛厤涓涓暣鍨嬫暟缁 濡傛灉娌¢偅鍙 a[0]灏辨槸null 璇村緱绠鍗曠偣锛屼竴缁存暟缁刟[]鐨勫紩鐢 a鏄竴涓璞″紩鐢紝鎸囧悜涓涓暟缁 浜岀淮鐨勬椂鍊 绗簩缁寸被浼间笂闈竴缁达紝鑰岀涓缁存寚鍚戠殑涓嶆槸鍏蜂綋鏁版嵁鐨勬暟缁勶紝鑰屾槸涓涓紩鐢ㄧ殑鏁扮粍 浠ユ绫绘帹 涓夌淮鐨勬椂鍊 绗竴缁存寚鍚戜竴涓浜岀淮鏁扮粍寮曠敤...
  • java 閿洏杈撳叆浜岀淮鏁扮粍
    绛旓細婧愪唬鐮侊細import java.util.Scanner;public class 浜岀淮鏁扮粍 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("杈撳叆浣犻渶瑕佺殑闃跺眰鏁帮細"); Scanner scan = new Scanner(System.in); int n=scan.nextInt();//瀹氫箟闇瑕佺殑闃跺眰鏁皀...
  • 鍦Java涓,瀹氫箟涓涓浜岀淮鏁扮粍,骞惰祴鍊,鐒惰屼互琛屽垪寮忕殑鏂瑰紡鎵撳嵃,鍐欏嚭浠g爜...
    绛旓細鐒跺悗浣跨敤涓や釜宓屽鐨勫惊鐜潵鍒濆鍖栧畠銆傛帴涓嬫潵锛屾垜浠畾涔変簡涓涓潤鎬佹柟娉昫eterminant(),璇ユ柟娉曟帴鍙椾竴涓浜岀淮鏁扮粍浣滀负鍙傛暟锛屽苟杩斿洖瀹冪殑琛屽垪寮忋傚湪璇ユ柟娉曚腑锛屾垜浠娇鐢ㄤ簡涓涓猣or寰幆鏉ラ亶鍘嗙煩闃电殑姣忎釜鍏冪礌锛屽苟浣跨敤涓浜涢昏緫鏉ヨ绠楄鍒楀紡銆傛渶鍚庯紝鎴戜滑鍦ㄤ富鏂规硶涓皟鐢ㄤ簡determinant()鏂规硶锛屽苟灏嗙粨鏋滄墦鍗板嚭鏉ャ
  • java瀹氫箟浜岀淮鏁扮粍鐨勫嚑绉嶅啓娉
    绛旓細涓嬮潰缁欎綘浠嬬粛 //瀹氫箟浜岀淮鏁扮粍鍐欐硶1 瀹氫箟鐨勫悓鏃跺垎閰嶇┖闂村ぇ灏 class numfour { public static void main(String[] args){ short[][] numfour=new short[5][8]; //瀹氫箟涓涓猻hort绫诲瀷鐨勬暟缁勫悓鏃朵负瀹冨垎閰5琛8鍒楃殑绌洪棿澶у皬 numfour[0][7]=10;numfour[1][6]=20;numfour[2][5]=30;numfour[...
  • Java璇█涓,鎬庝箞鐢ㄤ簩缁存暟缁妯悜杈撳嚭?濉啓myprint涓唴瀹
    绛旓細public static void myPrint(int arr1[][],int arr2[][],int arr3[][]) { System.out.println("arr1:\t\tarr2:\t\tarr3:");for(int i=0;i<arr1.length;i++) { for(int j=0;j<arr1[i].length;j++) { System.out.print(arr1[i][j]+" ");} System.out.print("\t...
  • Java濡備綍鐢Array.newInstance() 鍒涘缓浜岀淮鏁扮粍?
    绛旓細浠g爜濡備笅锛歩mport java.lang.reflect.Array;public class ArrayTest { / 浣跨敤Array绫诲姩鎬佸垱寤哄缁存暟缁 / public static void main(String[] args) { //鍒涘缓涓涓厓绱犵被鍨婼tring锛岀淮搴︿负[5][10]鐨勬暟缁 Object arr=Array.newInstance(String.class, 5,10);//涓浜岀淮鏁扮粍璧嬪 //鑾峰彇绗竴缁村害涓4鐨勬暟缁...
  • 鍏充簬java涓簩缁存暟缁杈撳嚭鐨勯棶棰
    绛旓細鎵璋撶殑浜岀淮鏁扮粍鍏跺疄鏄暟缁勭殑鏁扮粍锛堟瘡涓竴缁存暟缁勭殑闀垮害鍙互涓嶅悓锛屾墍浠ヤ簩缁存暟缁勪篃绉颁负閿娇鏁扮粍锛夈傚亣璁炬湁锛歩nt[][] arr={new int [1] {1},new int [2] {2,3},new int [3] {4,5,6}};鍒欎簩缁存暟缁刟rr.length绛変簬3锛岃〃绀哄畠鐢3涓竴缁存暟缁勭粍鎴愶紝鍗3琛屻俛rr[0].length琛ㄧず绗1涓竴缁存暟缁勭殑闀垮害...
  • 扩展阅读:java入门网站 ... java如何建立二维数组 ... 二维数组a[3][4] ... 二维数组的声明方式有三种 ... java 直接输出二维数组 ... java中二维数组的输入 ... java二维数组怎么输出 ... java二维数组例子 ... java中数组下标如何使用 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网