在 Java 中分配数组。
java 8object oriented programmingprogramming更新于 2024/10/13 13:36:00
在创建变量时,我们首先要声明它们、初始化它们、为它们分配/重新分配值。
同样,在创建数组时 −
您可以像声明变量一样声明数组 −
int myArray[];
您可以使用 new 关键字 − 像创建对象一样创建数组
myArray = new int[5];
您可以使用索引 − 逐个为所有元素分配值来初始化数组
myArray [0] = 101; myArray [1] = 102;
为数组赋值
当我们将一种类型的原始值隐式地分配给另一种(数据类型)的变量时,它们会被转换。
但是,当您尝试将较高的数据类型分配给较低的数据类型时,在编译时您将收到一条错误消息,提示"类型不兼容:可能有损转换"
因此,在为数组元素赋值时,您可以分配任何将被隐式转换的值。
示例
public class ArrayExample { public static void main(String args[]){ //声明数组 int[] myArray = new int[5]; //为数组分配值 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[]){ //声明一个数组 int[] myArray = new int[5]; //为数组分配值 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[]){ //声明数组 Number[] num = new Number[5]; //为数组分配值 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[]){ //声明数组 Number[] num = new Number[5]; //为数组分配值 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
如果您创建了一个接口类型的对象数组,则需要确保分配给该数组元素的值是实现该接口的类的对象。