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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### [動態數組創建](https://lingcoder.gitee.io/onjava8/#/book/06-Housekeeping?id=%e5%8a%a8%e6%80%81%e6%95%b0%e7%bb%84%e5%88%9b%e5%bb%ba) 如果在編寫程序時,不確定數組中需要多少個元素,可以使用**new**在數組中創建元素。如下例所示,使用**new**創建基本類型數組。**new**不能創建非數組以外的基本類型數據: ~~~ // housekeeping/ArrayNew.java // Creating arrays with new import java.util.*; public class ArrayNew { public static void main(String[] args) { int[] a; Random rand = new Random(47); a = new int[rand.nextInt(20)]; System.out.println("length of a = " + a.length); System.out.println(Arrays.toString(a)); } } ~~~ 輸出: ~~~ length of a = 18 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ~~~ 數組的大小是通過`Random.nextInt()`隨機確定的,這個方法會返回 0 到輸入參數之間的一個值。 由于隨機性,很明顯數組的創建確實是在運行時進行的。此外,程序輸出表明,數組元素中的基本數據類型值會自動初始化為默認值(對于數字和字符是 0;對于布爾型是**false**)。`Arrays.toString()`是**java.util**標準類庫中的方法,會產生一維數組的可打印版本。 本例中,數組也可以在定義的同時進行初始化: ~~~ int[] a = new int[rand.nextInt(20)]; ~~~ 如果可能的話,應該盡量這么做。 如果你創建了一個非基本類型的數組,那么你創建的是一個引用數組。以整型的包裝類型**Integer**為例,它是一個類而非基本類型: ~~~ // housekeeping/ArrayClassObj.java // Creating an array of nonprimitive objects import java.util.*; public class ArrayClassObj { public static void main(String[] args) { Random rand = new Random(47); Integer[] a = new Integer[rand.nextInt(20)]; System.out.println("length of a = " + a.length); for (int i = 0; i < a.length; i++) { a[i] = rand.nextInt(500); // Autoboxing } System.out.println(Arrays.toString(a)); } } ~~~ 輸出: ~~~ length of a = 18 [55, 193, 361, 461, 429, 368, 200, 22, 207, 288, 128, 51, 89, 309, 278, 498, 361, 20] ~~~ 這里,即使使用 new 創建數組之后: ~~~ Integer[] a = new Integer[rand.nextInt(20)]; ~~~ 它只是一個引用數組,直到通過創建新的**Integer**對象(通過自動裝箱),并把對象賦值給引用,初始化才算結束: ~~~ a[i] = rand.nextInt(500); ~~~ 如果忘記了創建對象,但試圖使用數組中的空引用,就會在運行時產生異常。 也可以用花括號括起來的列表來初始化數組,有兩種形式: ~~~ // housekeeping/ArrayInit.java // Array initialization import java.util.*; public class ArrayInit { public static void main(String[] args) { Integer[] a = { 1, 2, 3, // Autoboxing }; Integer[] b = new Integer[] { 1, 2, 3, // Autoboxing }; System.out.println(Arrays.toString(a)); System.out.println(Arrays.toString(b)); } } ~~~ 輸出: ~~~ [1, 2, 3] [1, 2, 3] ~~~ 在這兩種形式中,初始化列表的最后一個逗號是可選的(這一特性使維護長列表變得更容易)。 盡管第一種形式很有用,但是它更加受限,因為它只能用于數組定義處。第二種和第三種形式可以用在任何地方,甚至用在方法的內部。例如,你創建了一個**String**數組,將其傳遞給另一個類的`main()`方法,如下: ~~~ // housekeeping/DynamicArray.java // Array initialization public class DynamicArray { public static void main(String[] args) { Other.main(new String[] {"fiddle", "de", "dum"}); } } class Other { public static void main(String[] args) { for (String s: args) { System.out.print(s + " "); } } } ~~~ 輸出: ~~~ fiddle de dum ~~~ `Other.main()`的參數是在調用處創建的,因此你甚至可以在方法調用處提供可替換的參數。
                  <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>

                              哎呀哎呀视频在线观看