1.二维数组可以看成以数组为元素的数组;
2.Java中二维数组的声明和初始化应按照从高维到低维的顺序进行.
实例:
静态初始化:
Array2.java:
程序代码
public class Array2
{
public static void main(String args[]) {
int a[][] = {{1,2},{3,4,5,6},{7,8,9}} ;
for(int i=0 ; i <a.length ; i++) {
for(int j=0 ; j<a[i].length ; j++) {
System.out.println("a[" + i + "][" + j + "]=" + a[i][j]) ;
}
}
}
}
动态初始化:
程序代码
public class Array2D
{
public static void main(String args[]) {
int i , j ;
String s[][] ;
s = new String[3][] ;
s[0] = new String[2] ;
s[1] = new String[3] ;
s[2] = new String[2] ;
for(i=0 ; i<s.length ; i++) {
for(j=0 ; j <s[i].length ; j++) {
s[i][j] = new String("我的位置是:" + i + "," + j) ;
}
}
for(i=0 ; i<s.length ; i++) {
for(j=0 ; j<s[i].length ; j++) {
System.out.println(s[i][j]) ;
}
}
}
}
二维数组就是数组成员是一维数组的一维数组
三维数组就是数组成员是二维数组的一维数组
最后一个值是可以待定的,动态的么。
下面哪个语句正确地声明一个整型的二维数组? 多选
A int a[][] = new int[][];
B int a[10][10] = new int[][];
C int a[][] = new int[10][10];
D int [][]a = new int[10][10];
E int []a[] = new int[10][10];
答案是CDE
a[]是一维数组,又定义 int[] 一维数组,所以合起来就是二维数组
int[] a[] 与int[][] a 等效
//二维数组的练习
public class Test1 {
public static void main(String[] args) {
int[] score1=new int[10];
int[][] score2;
String[][] names;
//二维数组的初始化
score2=new int[][]{{1,2,3},{3,4,5,6},{16,7}};//静态初始化
names=new String[6][5];//动态初始化方式一
names=new String[6][];//动态初始化方式二,一定要设置行数
names[0]=new String[5];//第一行中有5个元素
names[1]=new String[4];
names[2]=new String[7];
names[3]=new String[5];
names[4]=new String[8];
names[5]=new String[5];
System.out.println("第一行中的元素:"+names[1].length);
System.out.println(names.length);//打印的是二维数组有几行
//如何遍历二维数组
for(int m=0;m<score2.length;m++){//控制行数
for(int n=0;n<score2[m].length;n++){//一行中有多少个元素(即多少列)
System.out.print(score2[m][n]+" ");
}
System.out.println();
}
}
}