在 Java 中分配陣列。


在建立變數時,首先我們會宣告它們,初始化它們,併為它們賦值/重新賦值。

類似地,在建立陣列時 -

  • 您可以像宣告變數一樣宣告陣列 -

int myArray[];
  • 您可以使用 new 關鍵字像建立物件一樣建立陣列 -

myArray = new int[5];
  • 您可以透過使用索引將值逐一分配給所有元素來初始化陣列 -

myArray [0] = 101;
myArray [1] = 102;

為陣列賦值

當我們將一種型別的基本值隱式分配給另一種(資料型別)的變數時,它們會被轉換。

但是,當您嘗試將更高資料型別分配給較低資料型別時,在編譯時會收到錯誤訊息“不相容的型別:可能存在損失轉換”。

因此,在為陣列的元素賦值時,您可以分配任何值,這些值將被隱式轉換。

示例

public class ArrayExample {
   public static void main(String args[]){
      //Declaring an array
      int[] myArray = new int[5];
      //Assigning values to the array
      myArray[0] = 2020;
      myArray[1] = 'h';
      byte by = 4;
      myArray[2] = by;
      short sh = 8;
      myArray[3] = sh;
      myArray[4] = 465;
      System.out.println(Arrays.toString(myArray));
   }
}

輸出

[2020, 104, 4, 8, 465]

但是,如果您嘗試將不相容的型別(更高型別)分配給變數,則會生成一個編譯時錯誤,提示“可能存在損失轉換”。

示例

 線上演示

import java.util.Arrays;
public class ArrayExample {
   public static void main(String args[]){
      //Declaring an array
      int[] myArray = new int[5];
      //Assigning values to the array
      myArray[0] = 2020;
      myArray[1] = 'h';
      byte by = 4;
      myArray[2] = by;
      short sh = 8;
      myArray[3] = 152L;
      myArray[4] = 465;
      System.out.println(Arrays.toString(myArray));
   }
}

輸出

編譯時錯誤

ArrayExample.java:12: error: incompatible types: possible lossy conversion from
long to int
   myArray[3] = 152L;
                  ^
1 error

如果您有一個物件陣列,在為其元素賦值時,您需要確保您分配的物件是相同的型別,或者子型別(即陣列的型別)。

示例

 線上演示

import java.util.Arrays;
public class ArrayExample {
   public static void main(String args[]){
      //Declaring an array
      Number[] num = new Number[5];
      //Assigning values to the array
      num[0] = 2020;
      num[1] = 125L;
      num[2] = 2545.F;
      num[3] = 152L;
      num[4] = 465;
      System.out.println(Arrays.toString(num));
   }
}

輸出

[2020, 125, 2545.0, 152, 465]

但是,對於物件陣列,如果您分配的值既不是宣告的型別也不是其子型別,則會生成一個編譯時錯誤。

示例

 線上演示

import java.util.Arrays;
public class ArrayExample {
   public static void main(String args[]){
      //Declaring an array
      Number[] num = new Number[5];
      //Assigning values to the array
      num[0] = 2020;
      num[1] = 125L;
      num[2] = 2545.F;
      num[3] = 152L;
      num[4] = "hello";
      System.out.println(Arrays.toString(num));
   }
}

輸出

ArrayExample.java:11: error: incompatible types: String cannot be converted to N
umber
   num[4] = "hello";
            ^
1 error

如果您建立了一個介面型別物件的陣列,則需要確保分配給陣列元素的值是實現該介面的類的物件。

更新於: 2019年9月6日

8K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告