在 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
如果您建立了一個介面型別物件的陣列,則需要確保分配給陣列元素的值是實現該介面的類的物件。
廣告