zoukankan      html  css  js  c++  java
  • Java 二维数组

    在 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

  • 相关阅读:
    《Linux系统free命令的使用》学习笔记
    《postfix MAIL服务搭建(第一篇):》RHEL6
    RHEL(RedHat Enterprise Linux)5/6 ISO镜像下载
    《samba搭建win客户端和linux客户端的区别》
    《怎样实现通过shell脚本将用户踢出系统》
    《DDNS服务器的搭建和案例解决方法》
    《Usermod:user lee is currently logged in 家目录不能改变解决方法》
    你们看不懂为什么写这个博客吧
    JS几种数组遍历方式以及性能分析对比
    从概念到业务来看 To B 和 To C 产品区别在哪?
  • 原文地址:https://www.cnblogs.com/bosongokay/p/6755347.html
Copyright © 2011-2022 走看看