Java:初始化0.0或1或"A"的数组,大小为n*1或大小为n*m

Java: Initialize an array of 0.0 or 1 or "A" with size n*1 or size n*m

我还是Java的新手。

我想知道是否有一种快速的方法来初始化 Java 数组,其中提供了大小(n*1n*m)和值(0.0, or 1, or "A")。

在这个post中, Initialization of an ArrayList in one line,intilizingJava数组给出如下:

ArrayList<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");

List<String> list = ["A", "B", "C"];

List<String> list = List.of("A", "B", "C");

然而,其中 none 个是我想要的。

我想知道是否可以用 0.0(双数组)或 [=21= 初始化大小为 n*1n*m 的 Java 数组](整数数组),或 "A"(字符串数组)。

这些初始化将是matlab/python中的one/two行代码,例如在 python 中,ZerosVector = numpy.zeros((n,1)) 将 return 一个带有零的 n*1 向量。在 matlab 中 CellMatrix = cell(10,20); CellMatrix(:) ="A" 将 return 带有字符串“A”的单元格矩阵。

在 Java 中是否有等效的 package/implementation 来实现如此快速的初始化而不使用循环?

做成单行,你可以做一个简单的方法,就可以了。 您可以传递大小和值以及 return 新的 ArrayList:

static ArrayList<String> populateArrayList(int size, String defaultValue) {
    ArrayList<String> list = new ArrayList<String>();
    for (int i=0; i<size; i++)
        list.add(defaultValue);
    return list;
}

如果你想使用静态列表 - array,那么可以应用类似的代码:

static String[] populateArray(int size, String defaultValue) {
    String[] array = new String[size];
    for (int i=0; i<size; i++)
        array[i] = defaultValue;
    return array;
}

然后要使用,只需调用方法并将其returned 值分配给新列表:

ArrayList<String> data1 = populateArrayList(100, "Doggo");
String[] data2 = populateArray(100, "Moo-moo");

默认值

正如评论中所述,不同数据类型的变量都有其默认值,用于数组、对象参数等。

  • 对于数字,它是 0,
  • 对于布尔值 - 真,
  • 对于 String 和其他类型,它是 null

更多关于默认值的信息here