繁体   English   中英

Java:初始化一个大小为 n*1 或大小为 n*m 的 0.0 或 1 或“A”的数组

[英]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" )提供。

在这篇文章中, ArrayList 在一行中的初始化,intilizing Java 数组如下所示:

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");

但是,它们都不是我想要的。

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

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

Java 中是否有任何等效的包/实现可以在不使用循环的情况下进行如此快速的初始化?

要将其制成单线,您可以制作一个简单的方法,就可以了。 您可以传递大小和值并返回新的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;
}

如果您希望使用 static 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;
}

然后使用,只需调用该方法并将其返回值分配给一个新列表:

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

默认值

如注释中所述,不同数据类型的变量具有其默认值,用于 arrays、object 参数等。

  • 对于数字,它是 0,
  • 对于 boolean - 真,
  • 对于字符串和其他类型,它是 null

更多关于这里的默认值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM