java吧 关注:1,239,679贴子:12,713,554
  • 6回复贴,共1

浅析多维数组

只看楼主收藏回复

(领完惊喜再走!)
什么是多维数组?二维数组,三维数组,四维数组就是多维数组。我们明白了二维数组,后面的就不难理解了。
例如:
一个数组 int arr[]={1,2,3,4,5};这个数组表达的是一个int类型的数组,数组长度为5.
那么二维数组是什么样子的呢?


1楼2020-07-11 10:53回复
    实例1:
    int arr[][]=new int[2][4];这个就是二维数组。
    这里[2]表示这个arr[][]二维数组里有2个一维数组.。[4]表示每个一维数组的长度为4。
    arr[0][0]=2;
    arr[0][1]=2;
    arr[0][2]=2;
    arr[0][3]=2;
    arr[1][0]=2;
    arr[1][1]=2;
    arr[1][2]=2;
    arr[1][3]=2;
    这里可以比较直观的看到,里面包含的两个一维数组,每个数组的长度为4.我给每个下标都赋值为2.


    2楼2020-07-11 10:53
    回复
      实例2:
      但是要注意二维数组里面的一维数组长度不是固定的 除非像上面我们赋过值的[2][4],
      现在我们继续看
      int arr[][]=new int[2][];
      这里我们只是声明了这个二维数组里面有几个一维数组,对一维数组的长度并没有声明,下面我们声明一下
      arr[0]=new int[4];//0下标的一维数组长度为4
      arr[1]=new int[5];//1下标的一维数组长度为5
      至于怎么给他们赋值我这里就不写了 和上面一样。
      这里理解了 我们就继续往下了。


      3楼2020-07-11 10:53
      回复
        二维数组遍历:
        我们需要用两个for循环来解决。
        for(int i=0;i<arr.length;i++){
        for(int j=0;j<arr[i].length;j++){//arr[i].length一维数组长度
        System.out.println(arr[i][j]);
        }
        }


        4楼2020-07-11 10:53
        收起回复
          结合上面的两个实例,第一个实例遍历后结果为8个2,第二个实例遍历后为9个0,因为我们没有赋值,所以输出的是默认值0。为什么输出9个不用解释了吧,我们定义了两个一维数组的长度加起来为9.


          5楼2020-07-11 10:53
          回复
            二维数组如果都理解了那么三维四维数组和他的道理是一样的。
            下面来个二维数组实例:
            我们有三个班级 每个班级有三个学生,(有的不符合实际,举例子别纠结)请依次输入他们的名字并输出。
            import java.util.*;
            public class Test{
            public static void main(String[] args){
            Scanner in=new Scanner(System.in);
            String arr[][]=new String[3][3];
            for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr[i].length;j++){
            System.out.println("请输入第"+(i+1)+"班"+"第"+(j+1)+"个学生的名字:");
            arr[i][j]=in.next();
            }
            }
            for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr[i].length;j++){
            System.out.println("第"+(i+1)+"班"+"第"+(j+1)+"个学生的名字:"+arr[i][j]);
            }
            }
            }
            }


            6楼2020-07-11 10:53
            回复