<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 大數據學習筆記第6天 - 數組 # ## 回顧 方法的重載:為了方法名的重用。遵守兩同、一不同原則(同類同方法名,不同的參數個數或參數類型)。 ## 大綱 ### 第一節課 - 知識點回顧 - 數組概述 - 數組模擬打分實例 ### 第二節課 - 方法調用的值傳遞原理 ### 第三節課 - 二維數組 - 二維數組的遍歷 - 二維數組計數求和 ### 第四節課 - 二維數組練習 - 二維數組打印楊輝三角 ## 數組基礎 概念:同一種類型數據的集合,可以是基本的數據類型,也可以是引用數據類型。 ![](./img/06/03.jpg) ### 特點 1. 數組存儲的都是相同數據類型的元素。 2. 數組的長度也就是數組中元素的個數。 3. 元素從0開始編號,編號也稱為索引\index\下標。 4. 數組中元素的訪問方式是通過數組名+索引的方式。 ### 數組的定義格式 基本數據類型變量的定義:int x; 數組類型變量的定義:int[] arr; ![](./img/06/01.jpg) ### 數組的初始化 初始化方式1: 動態初始化:數組的創建和元素的賦值分開進行; 格式:元素類型[] 數組名=new 元素類型[數組長度]; int[] arr = new int[3]; 初始化方式2: 靜態初始化:數組創建時就給數組元素賦值; 格式:元素類型[] 數組名=new 元素類型[]{元素1,元素2,...}; int[] arr = new int[]{1,2,3} 靜態初始化的簡寫方式:int[] arr = {1,2,3} 直接打印數組類型的變量,會發現結果是一段看不懂的字符串,這就是引用數據類型變量的特點;它實際上代表的是一段內存空間的十六進制表示形式,真正的數據在JVM的堆內存空間中。 ### 代碼實例 public class ArrayDemo{ public static void main(String[] args){ // 動態初始化 int[] arr1 = new int[3]; System.out.println(arr1); //打印的是包含了十六進制的字符串,實際上代表的是數組的地址 // 靜態初始化 int[] arr2 = new int[]{1,2,3}; int[] arr3 = {4,5,6}; System.out.println(arr2); System.out.println(arr3); } } ![](./img/06/2018-07-22_223242.png) ## 內存結構 Java程序在運行時,為了提高運行效率,對內存進行了不同區域的劃分,每一種區域都有特定的處理數據的方式和內存管理方式。 如圖: ![](./img/06/02.jpg) - 棧內存:用于存儲局部變量,當數據使用完,所占空間會自動釋放; - 堆內存:存放數組和對象,通過new建立的實例都存放在堆內存中; - 每一個實例都有內存地址值; - 實例中的變量都有默認初始值; - 當實例不再被使用,會在不確定的時間被垃圾回收器回收; - 方法區:存放類文件和方法(面向對象部分再闡述) ![](./img/06/06.jpg) 本地方法棧:供本地方法使用,與操作系統有關。 程序計數器:對字節碼文件計數; ## 常見異常 1. 數組索引越界異常 2. 空指針異常 ### 代碼實例 public class ArrayDemo2{ public static void main(String[] args){ int[] arr = new int[2]; // arr[2] = 1; //java.lang.ArrayIndexOutOfBoundsException arr=null; System.out.print(arr[0]); //java.lang.NullPointerException } } ![](./img/06/2018-07-22_224258.png) ## 案例:數組模擬打分 從鍵盤錄入5個分數作為評分,然后去除一個最高分,去除一個最低分,用剩余的數據的平均分作為最終的評分; 代碼: import java.util.Scanner; public class Demo01{ public static void main(String[] args){ Scanner s = new Scanner(System.in); int[] score = new int[5]; System.out.println("請輸入第1個評分"); score[0] = s.nextInt(); System.out.println("請輸入第2個評分"); score[1] = s.nextInt(); System.out.println("請輸入第3個評分"); score[2] = s.nextInt(); System.out.println("請輸入第4個評分"); score[3] = s.nextInt(); System.out.println("請輸入第5個評分"); score[4] = s.nextInt(); double res = getScore(score); System.out.println("最終的評分是:" + res); } public static int getMax(int[] arr){ int max = arr[0]; for(int i=0; i < arr.length; i++){ if(arr[i] > max){ max = arr[i]; } } return max; } public static int getMin(int[] arr){ int min = arr[0]; for(int i=0; i < arr.length; i++){ if(arr[i] < min){ min = arr[i]; } } return min; } public static double getScore(int[] arr){ int max = getMax(arr); int min = getMin(arr); int sum = 0; for(int i=0; i<arr.length; i++){ sum += arr[i]; } double score = (sum - max - min) / (arr.length - 2.0); return score; } } ![](./img/06/2018-07-22_224436.png) ## 方法調用的值傳遞原理 Java中參數傳遞(實參->形參)的問題: - 參數是基本數據類型,傳遞的是數值的副本; - 參數是引用數據類型,傳遞的是引用的副本; ![](./img/06/04.jpg) ### 代碼實例 // 參數是基本數據類型,傳遞的是數值的副本; public class Demo02{ public static void main(String[] args){ int x=10; int y=20; change(x, y); System.out.println("x=" + x + ", y=" + y); } public static void change(int x, int y){ System.out.println("方法內部x=" + x + ", y=" + y); x = 0; y = 0; System.out.println("方法內部x=" + x + ", y=" + y); } } ![](./img/06/2018-07-22_225512.png) //參數是引用數據類型,傳遞的是引用的副本; public class Demo03{ public static void main(String[] args){ int[] arr = {1,2,3}; change(arr); for(int i=0; i<arr.length; i++){ System.out.print(arr[i]+" "); } } public static void change(int[] arr){ for(int i=0; i<arr.length; i++){ arr[i]=0; } System.out.print("方法內部數組元素是:"); for(int i=0; i<arr.length; i++){ System.out.print(arr[i] + " "); } System.out.println(); } } ![](./img/06/2018-07-22_230507.png) ## 楊輝三角 ![](./img/06/05.jpg) - 端點的數為1. - 每個數等于它上方兩數之和。 - 每行數字左右對稱,由1開始逐漸變大。 - 第n行的數字有n項。 - 第n行數字和為2^(n-1)。 - 每個數字等于上一行的左右兩個數字之和。可用此性質寫出整個楊輝三角。即第n+1行的第i個數等于第n行的第i-1個數和第i個數之和,這也是組合數的性質之一。 ... ![](./img/2018-08-18_150213.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看