码迷,mamicode.com
首页 > 编程语言 > 详细

Java 二维数组

时间:2017-04-24 12:30:44      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:静态初始化   bsp   目标   lan   创建   调用   lang   void   sha   

在 Java 中,二维数组与一维数组一样,但是不同于 C 中的二维数组:

  1. 在 Java 中,二维数组可以看成是以数组为元素的数组,例如:

     int a[][] = {{1,2},{3,4,5,6},{7,8,9}};

     易知:a[0] 表示一维数组{1,2};a[1] 表示一维数组{3,4,5,6};a[2] 表示一维数组{7,8,9}.

  2. Java 中多维数组的声明和初始化应该按照从高维到低维(从左到右)的顺序进行,例如:

    int a[][] = new int[3][];

            a[0] = new int[2];

     a[1] = new int[4];

         a[2] = new int[3];

             int t1[][] = new int[][4]; //非法

      3. 二维数组的初始化

    3.1 静态初始化

      int aa[][] = {{1,2},{2,3},{3,4,5}};

                 int bb[3][2] =  {{1,2},{2,3},{4,5}}; // 非法

            3.2 动态初始化

      int a[][] = new int[3][5];

      int b[][] = new int[3][];

        b[0] = new int[2];

      b[1] = new int[3];

                 b[2] = new int[5];

   4. Demo分析

 Demo_1

 public class Test{
     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.print("a["+i+"]["+j+"]= "+a[i][j]+"  ");
             }
             System.out.println();
         }
     }
}    

运行结果: 

a[0][0]= 1 a[0][1]= 2
a[1][0]= 3 a[1][1]= 4 a[1][2]= 5 a[1][3]= 6
a[2][0]= 7 a[2][1]= 8 a[2][2]= 9

 Demo_2

public class Test{
	public static void main(String[] args){
		String s[][] = new String[3][];
		s[0] = new String[2];
		s[1] = new String[3];
		s[2] = new String[2];
		for(int i=0;i<s.length;i++){
			for(int j=0;j<s[i].length;j++){
				s[i][j] = new String("我的位置是:"+"["+i+"]"+"["+j+"]");
			}
		}
		for(int i=0;i<s.length;i++){
			for(int j=0;j<s[i].length;j++){
				System.out.print(s[i][j]+" ");
			}
			System.out.println();
		}
	}
}

  运行结果: 

我的位置是:[0][0] 我的位置是:[0][1]
我的位置是:[1][0] 我的位置是:[1][1] 我的位置是:[1][2]
我的位置是:[2][0] 我的位置是:[2][1]

  5. 数组的拷贝:使用 Java.lang.System.arraycopy 的静态方法可以进行数组的拷贝工作,且不会创建新的对象;

          调用格式如下:

                             System.arraycopy(src, srcPos, dest, destPos, length)

          如果源数据数目超过目标数组边界会抛出 IndexOutOfBoundsException 异常

class Test {
	public static void main(String[] args){
		String s[] = {"SongBo","YanJiXiong","WangHaoWei","ShangXiaoHui"};
		String sbak[] = new String[6];
		System.arraycopy(s, 0, sbak, 0, 4);
		for(int i=0;i<sbak.length;i++){
			System.out.println(sbak[i]+"  ");
		}
	}
}

运行结果:

SongBo
YanJiXiong
WangHaoWei
ShangXiaoHui
null
null

Java 二维数组

标签:静态初始化   bsp   目标   lan   创建   调用   lang   void   sha   

原文地址:http://www.cnblogs.com/bosongokay/p/6755347.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!