zoukankan      html  css  js  c++  java
  • java学习之二维数组

    java当中的二维数组,存储一组比较特殊的对象。他存储一个数组,同时存储的数组当中又存储着元素。

    java二维数组的声明方式一:

    class Arr2Demo
    {
    	
    	public static void main(String[] args)
    	{
    		/**
    		*二维数组的定义格式:元素类型[][] 数组变量名称 = new 元素类型[3][];第一个维度必须
    		*确定,也就是第一个方括号
    		*/
    		int[][] arr = new int[3][];
    	}
    
    }
    

    二维数组出现的意义,二维数组之所以会出现是因为,现在当数据一多的时候我们往往希望把他们存储起来,比如说:

    现在有甲乙两个成员,他们当中分别各有一组数字:

    甲:34,56,78,22

    乙:31,53,79,20

    假如我们现在要把这两者存储起来,我们要做的就是把这两者存储在一个数组当中,那么即:

    int[] arr = {34,56,78,22,31,53,79,20};

    如果我们这个样子存储的话,势必不利于各个数据归属的区分,那么这个时候我们就引入二维数组。

    数字多了,引入数组,数组多了就引入二维数组

    int[][] arr2 = new int[2][4];

    		int[][] arr2 = new int[2][4];
    		arr2[0][0] = 34 ;
    		arr2[0][1] = 56 ;
    		arr2[0][2] = 78 ;
    		arr2[0][3] = 22 ;
    		arr2[1][0] = 31 ;
    		arr2[1][1] = 53 ;
    		arr2[1][2] = 79 ; 
    		arr2[1][3] = 20 ;
    

    那么二维数组在内存当中是如何存储的呢?

    二维数组定义的另外一种方式:

    同一维数组一样,二维数组也有一种简便的定义方式:即

    int[][] arr2 = {{34, 56, 78, 22}, {31, 35, 79, 20}} ;
    

    这个就是二维数组简单的定义格式,一个大数组当中又包括两个小的数组。

    二维数组的长度:

    class Arr2Demo
    {
    	
    	public static void main(String[] args)
    	{
    
    		int[][] arr2 = {{34, 56, 78, 22}, {31, 35, 79, 20}} ;
    		System.out.println(arr2.length);//2
    		System.out.println(arr2[0].length);//4
    		System.out.println(arr2[0].length);//4
    		
    	}
    
    }
    

    二维数组中数据的遍历输出:因为取出数据之后,还要取出数据当中的元素,这个就是大圈套小圈的思想,使用两个for循环:

    class Arr2Demo
    {
    	
    	public static void main(String[] args)
    	{
    
    		int[][] arr2 = {{34, 56, 78, 22}, {31, 35, 79, 20}} ;
    
    		for (int i = 0; i<arr2.length ; i++ ) {
    			
    			System.out.println("arr["+i+"] :");
    			for (int n = 0; n<arr2[i].length ; n++ ) {
    					
    				System.out.println("	"+arr2[i][n]);
    
    			}
    
    
    		}
    		
    	}
    
    }
    

    但是如果我们这个样子:

    class Arr2Demo
    {
    	
    	public static void main(String[] args)
    	{
    
    		int[][] arr2 = new int[3][] ;
    
    		for (int i = 0; i<arr2.length ; i++ ) {
    			
    			System.out.println("arr["+i+"] :");
    			for (int n = 0; n<arr2[i].length ; n++ ) {
    					
    				System.out.println("	"+arr2[i][n]);
    
    			}
    
    
    		}
    		
    	}
    
    }
    

      编译的时候不报错,但是运行的时候会报:

    Exception in thread "main" java.lang.NullPointerException
    at Arr2Demo.main(Arr2Demo.java:12)

    因为此时arr[0]的值是null,是个空指针不指向任何元素,所以通过他引用其他的元素,就会报错。

  • 相关阅读:
    标准函数头部注释
    排序
    #define _INTSIZEOF(n)
    并发编程资料
    memory model
    Ubuntu搜狗输入法的使用
    gprof
    xml_editor
    创建本地Ubuntu镜像
    设计模式9:建造者模式
  • 原文地址:https://www.cnblogs.com/sunchuanzhen/p/3327970.html
Copyright © 2011-2022 走看看