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 String3;

//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. 從第三行開始, 對於非第一個元素和最後一個元素的元素。即:

yanghuii = yanghuii-1 + yanghuii-1;

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) y0 = x; //類型不否,x爲引用類型,而y0爲int類型

d) x0 = y; //x爲一維數組

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

f) x = y; //類型不符,一個是一維數組,一個是二維數組

提示:

一維數組:int[] x 或者int x[]

二維數組:int[][] y 或者 int[] y[] 或者 int y[][]

總結Summary

二維數組遍歷
二維數組內存解析
楊輝三角
Arrays工具類
數組常見異常

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章