簡體   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