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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## Java編程那些事兒48—多維數組基礎 鄭州游戲學院 陳躍峰 出自:[http://blog.csdn.net/mailbomb](http://blog.csdn.net/mailbomb) **6.4 多維數組基礎** 在學校里,由于一個班的人數不多,所以按照順序編號即可,當人數增多時,例如對于學校里的人,在編號時就要增加層次,例如XX班XX號。在部隊中也是這樣,XX師XX團XX營XX連XX排XX班,這里的層次就比較深了。為了管理數據的方便,一般要加深管理的層次,這就是多維數組的由來。 多維數組,指二維以及二維以上的數組。二維數組有兩個層次,三維數組有三個層次,依次類推。每個層次對應一個下標。 在實際使用中,為了使結構清晰,一般對于復雜的數據都是用多維數組。 關于多維數組的理解,最終的是理解數組的數組這個概念,因為數組本身就是一種復合數據類型,所以數組也可以作為數組元素存在。這樣二維數組就可以理解成內部每個元素都是一維數組類型的一個一維數組。三維數組可以理解成一個一維數組,內部的每個元素都是二維數組。無論在邏輯上還是語法上都支持“數組的數組”這種理解方式。 通常情況下,一般用二維數組的第一維代表行,第二維代表列,這種邏輯結構和現實中的結構一致。 和一維數組類似,因為多維數組有多個下標,那么引用數組中的元素時,需要指定多個下標。 **6.5 多維數組語法** 下面以二維數組為例,來介紹多維數組的語法。 **6.5.1 多維數組聲明** 多維數組的聲明: ?????????????????? 數據類型[][] 數組名稱; ?????????????????? 數據類型[]?數組名稱[]; ?????????????????? 數據類型?? 數組名稱[][]; 以上三種語法在聲明二維數組時的功能是等價的。同理,聲明三維數組時需要三對中括號,中括號的位置可以在數據類型的后面,也可以在數組名稱的后面,其它的依次類推。 例如: ?????????????????? int[][] map; ?????????????????? char c[][]; 和一維數組一樣,數組聲明以后在內存中沒有分配具體的存儲空間,也沒有設定數組的長度。 **6.5.2 多維數組初始化** 和一維數組一樣,多維數組的初始化也可以分為靜態初始化(整體賦值)和動態初始化兩種,其語法格式如下。 **6.5.2.1 靜態初始化** 以二維數組的靜態初始化為例,來說明多維數組靜態初始化的語法格式。示例代碼如下: ~~~ ?????????????????? int[][] m = { ??????????????????????????? {1,2,3}, ??????????????????????????? {2,3,4} ?????????????????? }; ~~~ 在二維數組靜態初始化時,也必須和數組的聲明寫在一起。數值書寫時,使用兩個大括號嵌套實現,在最里層的大括號內部書寫數字的值。數值和數值之間使用逗號分隔,內部的大括號之間也使用逗號分隔。 由該語法可以看出,內部的大括號其實就是一個一維數組的靜態初始化,二維數組只是把多個一維數組的靜態初始化組合起來。 同理,三維數組的靜態初始化語法格式如下: ~~~ ?????????????????? int[][][] b = { ??????????????????????????? { ???????????????????????????????????? {1,2,3}, ???????????????????????????????????? {1,2,3} ??????????????????????????? }, ??????????????????????????? { ???????????????????????????????????? {3,4,1}, ???????????????????????????????????? {2,3,4} ??????????????????????????? } ?????????????????? }; ~~~ 說明:這里只是演示語法格式,數值本身沒有意義。 **6.5.2.2 動態初始化** 二維數組動態初始化的語法格式: ?????????????????? 數據類型[][] 數組名稱 = new 數據類型[第一維的長度][第二維的長度]; ?????????????????? 數據類型[][] 數組名稱; ?????????????????? 數組名稱 = new 數據類型[第一維的長度][第二維的長度]; ???????? 示例代碼: ?????????????????? byte[][] b = new byte[2][3]; ?????????????????? int m[][]; m = new int[4][4]; 和一維數組一樣,動態初始化可以和數組的聲明分開,動態初始化只指定數組的長度,數組中每個元素的初始化是數組聲明時數據類型的默認值。例如上面初始化了長度為2X3的數組b,和4X4的數組m。 使用這種方法,初始化出的第二維的長度都是相同的,如果需要初始化第二維長度不一樣的二維數組,則可以使用如下的格式: ~~~ ?????????????????? int n[][]; ?????????????????? n = new int[2][];?//只初始化第一維的長度 ?????????????????? //分別初始化后續的元素 ?????????????????? n[0] = new int[4]; ?????????????????? n[1] = new int[3]; ~~~ 這里的語法就體現了數組的數組概念,在初始化第一維的長度時,其實就是把數組n看成了一個一維數組,初始化其長度為2,則數組n中包含的2個元素分別是n[0]和n[1],而這兩個元素分別是一個一維數組。后面使用一維數組動態初始化的語法分別初始化n[0]和n[1]。 **6.5.3 引用數組元素** 對于二維數組來說,由于其有兩個下標,所以引用數組元素值的格式為: 數組名稱[第一維下標][第二維下標] 該表達式的類型和聲明數組時的數據類型相同。例如引用二維數組m中的元素時,使用m[0][0]引用數組中第一維下標是0,第二維下標也是0的元素。這里第一維下標的區間是0到第一維的長度減1,第二維下標的區間是0到第二維的長度減1。 **6.5.4 獲得數組長度** 對于多維數組來說,也可以獲得數組的長度。但是使用數組名.length獲得的是數組第一維的長度。如果需要獲得二維數組中總的元素個數,可以使用如下代碼: ~~~ ?????????????????? int[][] m = { ??????????????????????????? {1,2,3,1}, ??????????????????????????? {1,3}, ??????????????????????????? {3,4,2} ?????????????????? }; ?????????????????? int sum = 0; ?????????????????? for(int i = 0;i < m.length;i++){?//循環第一維下標 ??????????????????????????? sum += m[i].length;???? //第二維的長度相加 ?????????????????? } ~~~ 在該代碼中,m.length代表m數組第一維的長度,內部的m[i]指每個一維數組元素,m[i].length是m[i]數組的長度,把這些長度相加就是數組m中總的元素個數。
                  <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>

                              哎呀哎呀视频在线观看