java学习笔记(四)多维数组

二维数组

0.数组特点

数组本身是一个引用类型
声明时必须指定长度 长度一旦确定不能再次发生改变

1.定义/声明

里面存储的类型[ 数组名字;
int[][] arrray;

2.初始化

静态 —有长度  有元素
   int[][] array =[{1,2,3},{4,5,6,7},{7,8,9}};
动态----只有长度 没有元素(默认);
   int[][] array =new[3][2];
   array—>{{x,x},{x,x},{x,x}}—>x默认0
   可能会产生一个运行时异常
   NullPointerException

3.元素访问

通过元素在数组中的位置—index
 array[i][j]
 i控制大数组中 小数组的位置
 j控制小数组中 元素的位置

4.遍历轮询

正常循环 增强for循环 嵌套完成

5.引用类型在内存中的存储结构

二维数组在内存中的存储结构
  int[][] array=new int[3][2];
  //3个表示有3个小数组int[]
  //2表示每一个小数组中都有两个元素
  //array[0][0]=10;
  //array[0][1]=2 0;
二维数组内存结构

public class TestArray {
    public static void main(String [] args){
           int[][] array=new int[3][2];
           array[0][0]=10;
           array[0][3]=20;
           
           array[1]=array[0];
           array[0]=new int[4];
           array[0][0]=100;
           System.out.println(array[1][0]);  //10 

            //二维数组的动态初始化
           // int[][] array=new int[3][];//{{10,20},{0,0},{0,0}}                 
             //array[0]=new int[2];
             //array[0][0]=10;

             //array[0][4]=20;
             //array[0][2]=30;  //运行时异常 ArrayIndexOutOfBoundsException
            
            /*     
            //1.声明----初始化(静态)        
            int[][] array=new int[][]{{1,2},{3,4,5,6},{7,8,9}};
            //访问数组内的元素 ---index
            //int value= array[0][0]; //前面表示小数组位置 后面表示小数组中元素的位置
            //System.out.println(value);  // 1 array[2][3] 6    array[2][2] 9
            
            //数组的遍历/轮询
            for(int i=0;i<array.length;i++){ //遍历大数组中的小数组

                  for(int j=0;j<array[i].length;j++){  //遍历小数组中的元素
                       int value=array[i][j]; 
                       System.out.print(value+"\t"); 
                  }
                  System.out.println();
 
            }
            System.out.println("----------------");
        
            for(int[]arr: array){

               for(int value:arr){

                 System.out.println(value);
               }
             }*/

    }
}

三维数组

创建一个数组 数组内存储好多个int[][]
  int[][][] array=new{{{1,2},{3,4}},{{},{}},{{},{}}}
   int[][][] array=new int[3][][];
   三个二维数组 每一个里面有两个一维数组 再里面有两个int元素

二维数组练习

1.模拟班级同学每周换位置

{{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}
import java.util.Scanner;
public class ChangeGroup {
     public static void main(String[] args){
        //创建一个二维数组 用来表示班级里的每一列同学
        int[][] array={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
        //设计每一周交换一次  几周?
        Scanner input =new Scanner(System.in);
        System.out.println("请输入一个周数,我来告诉您交换后的结果");
        int week=input.nextInt();  //6
         for(int i=1;i<week%4;i++){   
            int[] x=   array[0];
            array[0]=array[1];
            array[1]=array[2];
            array[2]=array[3];
            array[3]= x;
        }
        for(int[] arr:array) {
            for(int v: arr){
               System.out.print(v+"\t");
            }
               System.out.println();            
        }
    }

}
发布了30 篇原创文章 · 获赞 0 · 访问量 6655

猜你喜欢

转载自blog.csdn.net/qq_37710756/article/details/103257298