用Java分配数组。

首先创建变量时,我们将对其进行声明,初始化,为它们分配/重新分配值。

同样,在创建数组时-

  • 您可以像声明变量一样声明数组-

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

如果创建了接口类型的对象数组,则需要确保将分配给数组元素的值是实现上述接口的类的对象。