zoukankan      html  css  js  c++  java
  • Java编程基础阶段笔记 day06 二维数组

    二维数组

    笔记Notes

    • 二维数组

    • 二维数组声明

    • 二维数组静态初始化与二位初始化

    • 二维数组元素赋值与获取

    • 二维数组遍历

    • 二维数组内存解析

    • 打印杨辉三角

    • Arrays工具类

    • 数组中常见的异常

      • 二维数组

    二维数组的元素是一维数组

      • 二维数组的声明和初始化

    String  [][] persons;

    String persons2[][];

    String [] persons3[];

      • 二维数组的初始化

      • //静态初始化

    persons = new  String[][]{{"小龙哥","110"},{"小仓","119"},{"小强","120"}};

    //声明和初始化不能分开

    int[][] numbers = {{1,2},{3,4},{5,6}};

      • //动态初始化

    persons2 = new String[3][2];

    //3值得是二维数组长度,2指的是二维数组元素(一维数组)的长度

    //创建一个长度为3的二维数组,二维数组的元素为null

    persons3 = new String[3][];

    persons3[0] = new String[2];

    persons3[1] = new String[3];

    • 获取二维数组的值,元素的值

           String aString = persons3[2][2];

           int a = persons3.length;

    int b = persons3[0].length;

    • 遍历二维数组的元素

    //遍历二维数组

            for (int i = 0; i < numbers.length; i++) {

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

                            System.out.print(numbers[i][j] + " ");

                    }

                    System.out.println();

            }

    • 二维数组内存解析

    • 打印杨辉三角

    使用二维数组打印一个 10 行杨辉三角。

    【提示】

    1. 第一行有 1 个元素, 第 n 行有 n 个元素

    2. 每一行的第一个元素和最后一个元素都是 1

    3. 从第三行开始, 对于非第一个元素和最后一个元素的元素。即:

    yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];

    public class YangHui {

            public static void main(String[] args) {

                    //创建二维数组

                    int[][] numbers = new int[10][];

                    //给二维数组的元素赋值

                    for (int i = 0; i < numbers.length; i++) {

                            //创建二维数组的元素(一维数组)

                            numbers[i] = new int[i + 1];

                            //给二维数组中的元素的第一个元素和最后一个元素赋值

                            numbers[i][0] = numbers[i][i] = 1;

                            //遍历二维数组中的元素(一维数组),不包括第一个和最后一个

                            for (int j = 1; j < numbers[i].length - 1; j++) {

                                    numbers[i][j] = numbers[i - 1][j] + numbers[i - 1][j - 1];

                            }

                    }

                    //遍历二维数组

                    for (int i = 0; i < numbers.length; i++) {

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

                                    System.out.print(numbers[i][j] + " ");

                            }

                            System.out.println();

                    }

            }

    }

    • Arrays工具类使用

     int[] ns = {5,2,30,4,1,90};

              int[] ns2 = {5,2,3,4,1};

               //比较两个数组是否相等 : 比较的是内容,个数,顺序

              boolean equals = Arrays.equals(ns, ns2);

              System.out.println(equals);

              

               //输出数组信息

              String nsStr = Arrays.toString(ns);

              System.out.println(nsStr);

              

               //将指定的数值填充到数组中

              Arrays.fill(ns, 100);

              System.out.println(Arrays.toString(ns));

              

               //对数组中的内容进行排序

               Arrays.sort(ns);

               System.out.println(Arrays.toString(ns));

              

               //二分法查找 - 使用前必须先排序 - 如果找不到会返回负数

               int index = Arrays.binarySearch(ns, 4);

               System.out.println(index);

    • 数组中常见的异常

    //1.数组下角标越界 :ArrayIndexOutofBoundsException

                    int[] numbers = new int[2]; //索引值合理范围 :0 ~ 长度-1

                    System.out.println(numbers[2]); //发生了异常

                    System.out.println(numbers[-1]); //发生了异常

                    //2.空指针异常 :: NullPointerException

                    String str = "aaa";

                    str = null;

                    System.out.println(str.toUpperCase());//发生了异常

                    

                    String[] names = new String[2];

                    System.out.println(names[0].toUpperCase());//发生了异常

                    

                    String[][] persons = new String[3][];

                    System.out.println(persons[0][0]); //发生了异常

                    System.out.println(persons[0].length); //发生了异常

    • 习题:数组声明

    声明:int[] x,y[]; 在给x,y变量赋值以后,以下选项允许通过编译的是:

    a ) x[0] = y;   //类型不符,x[0]为int类型,而y为引用类型

    b)   y[0] = x;  //可以

    c)   y[0][0] = x; //类型不否,x为引用类型,而y[0][0]为int类型

    d)   x[0][0] = y; //x为一维数组

    e)   y[0][0] = x[0];  //可以

    f)   x = y;   //类型不符,一个是一维数组,一个是二维数组

    提示:

    一维数组:int[] x 或者int x[]  

    二维数组:int[][] y 或者 int[] y[] 或者 int y[][]

    总结Summary

    • 二维数组遍历

    • 二维数组内存解析

    • 杨辉三角

    • Arrays工具类

    • 数组常见异常

  • 相关阅读:
    Powershell数据处理
    Powershell About Active Directory Group Membership of a domain user
    Powershell About Active Directory Server
    Oracle Schema Objects——Tables——TableStorage
    Oracle Schema Objects——Tables——TableType
    English Grammar
    Oracle Database Documentation
    Oracle Schema Objects——Tables——Oracle Data Types
    Oracle Schema Objects——Tables——Overview of Tables
    What is Grammar?
  • 原文地址:https://www.cnblogs.com/bigdatahub/p/11278640.html
Copyright © 2011-2022 走看看