二维数组


二维数组

  1. 数据类型 变量 = 初始化;

  2. 数据类型 - 八种基本数据类型以及对象类型

  3. 数组本身就是属于对象类型

    int[] arr = new int[3];//arr的数据类型int[],整数型数组,int型数组
    
  4. 元素类型[] 变量名 = new 元素类型[数组长度];

  5. int[][] 变量名 = new int[rows][cols]
    元素类型决定了数组中可以存放的数据的类型
    二维数组中的每个元素就是一维数组
    
  6. 定义一个3行2列的int型二维数组

    int[][] arr = new int[3][2];
    int arr[][] = new int[3][2];
    

赋值方式

  1. 通过下标一一赋值

    int[][] arr = new int[3][2];
    arr[0][0]=100;
    
  2. 定义二维数组的同时进行赋值

    int[][] arr = {{1,2},{3,4},{5,6}};
    int[][] arr2 = new int[][]{{1,2},{3,4},{5,6}};
    
  1. 先定义一个数组,然后是一行一行赋值

    int[][] arr = new int[3][3];
    arr[0] = {1,2,3};//error
    arr[0] = new int[]{1,2,3};//ok
    
  2. 定义一个不规则的二维数组

    列可以省略不写
    int[][] arr4 = new int[3][];
    arr4[0] = new int[]{1};
    arr4[1] = new int[]{1,2};
    arr4[2] = new int[]{1,3,1};
    

遍历方式

  1. 通过下标一一输出

  2. 通过单层for循环

     for (int i = 0; i < arr.length; i++) {
       System.out.println(Arrays.toString(arr[i]));
     }
    
  3. 双层for循环

    for (int i = 0; i < arr.length; i++) {
      //int[] temp = arr[i];
      for (int j = 0; j < arr[i].length; j++) {
        System.out.print(arr[i][j]+"\t");
      }
      System.out.println();
    }
    
  4. java.util.Arrays工具类中

     System.out.println(Arrays.deepToString(arr));
    
  1. 增强for循环

    for(元素类型 变量:数组对象名){
         
    }
     for (int[] ints : arr) {
       // System.out.println(ints);
       for (int r : ints) {
         System.out.print(r+"\t");
       }
       System.out.println();
     }
    

练习题

String[][] arr = new String[4][6];

arr[0]=new String[]{"白","日","依","山","尽",","};
arr[1]=new String[]{"黄","河","入","海","流","."};
arr[2]=new String[]{"欲","穷","千","里","目",","};
arr[3]=new String[]{"更","上","一","层","楼",","};


package tech.aistar.day04;

/**
 * 本类用来演示: 古诗词 横变竖
 * @date: 2021/7/20 3:06 下午
 */
public class PoemsDemo {
    public static void main(String[] args) {
        String[][] arr = new String[4][6];

        arr[0]=new String[]{"白","日","依","山","尽",","};
        arr[1]=new String[]{"黄","河","入","海","流","."};
        arr[2]=new String[]{"欲","穷","千","里","目",","};
        arr[3]=new String[]{"更","上","一","层","楼",","};

        change(arr);
    }

    public static void change(String[][] arr){
        String[][] temp = new String[6][4];

        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                temp[j][i] = arr[i][j];
            }
        }

        for (int i = 0; i < temp.length; i++) {
            for (int j = 0; j < temp[i].length; j++) {
                System.out.print(temp[i][j]+"\t");
            }
            System.out.println();
        }
    }
}

作业

http://xzc.cn/EhC5y656uG A B C

  1. 二维数组输出直角的杨辉三角

  2. 将1~5之间的随机整数,存储到一个长度为15的一维数组中.写一段程序.

    统计每个随机数在这个数组中出现的次数.并且根据出现的次数进行降序排列.

    arr -> {1,2,1,2,3,4,1,2,1,1,1...}
    数组去重 - 个数temp -> {1,2,3,4}
                    two[i] = new int[]{temp[i],count};
    int[][] two = new int[?][2];
    
    排序
    

文章作者: 码农耕地人
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 码农耕地人 !
  目录