更新時(shí)間:2022-06-01 11:07:22 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1498次
在本教程中,動(dòng)力節(jié)點(diǎn)小編將帶大家了解如何在 Java 中聲明和初始化數(shù)組。
通過提供類型和名稱,我們?cè)?Java 中聲明一個(gè)數(shù)組,就像我們聲明其他變量一樣:
int[] myArray;
要在聲明數(shù)組時(shí)初始化或?qū)嵗瘮?shù)組,這意味著我們?cè)趧?chuàng)建數(shù)組時(shí)分配值,我們可以使用以下速記語法:
int[] myArray = {13, 14, 15};
或者,您可以生成一個(gè)值流并將其分配回?cái)?shù)組:
int[] intArray = IntStream.range(1, 11).toArray();
int[] intArray = IntStream.rangeClosed(1, 10).toArray();
int[] intArray = IntStream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).toArray();
Java 中數(shù)組對(duì)象的聲明遵循與聲明 Java 變量相同的邏輯。我們識(shí)別數(shù)組元素的數(shù)據(jù)類型和變量的名稱,同時(shí)添加方括號(hào)[]來表示它的數(shù)組。
以下是聲明數(shù)組的兩種有效方法:
int intArray[];
int[] intArray;
第二個(gè)選項(xiàng)通常是首選,因?yàn)樗宄乇砻髁四姆N類型intArray。
請(qǐng)注意,我們只創(chuàng)建了一個(gè)數(shù)組引用。由于大小未知,因此沒有為數(shù)組分配內(nèi)存,我們也無能為力。
要使用數(shù)組,我們可以使用new關(guān)鍵字對(duì)其進(jìn)行初始化,后跟數(shù)組的數(shù)據(jù)類型,以及包含其大小的方括號(hào):
int[] intArray = new int[10];
這會(huì)為大小為 的數(shù)組分配內(nèi)存10。這個(gè)大小是不可變的。
Java 根據(jù)元素類型使用默認(rèn)值填充我們的數(shù)組 -0對(duì)于整數(shù)、false布爾值、null對(duì)象等。讓我們更多地了解如何用我們想要的值實(shí)例化一個(gè)數(shù)組。
使用非默認(rèn)值初始化數(shù)組的緩慢方法是一一分配值:
int[] intArray = new int[10];
intArray[0] = 22;
在本例中,您聲明了一個(gè)包含 10 個(gè)元素的整數(shù)數(shù)組對(duì)象,因此您可以使用其索引值初始化每個(gè)元素。
{}最常見和最方便的策略是使用包含數(shù)組元素的大括號(hào)同時(shí)聲明和初始化數(shù)組。
以下代碼使用三個(gè)元素(13、14 和 15)初始化一個(gè)整數(shù)數(shù)組:
int intArray[] = {13, 14, 15};
請(qǐng)記住,數(shù)組對(duì)象的大小將是您在大括號(hào)內(nèi)指定的元素?cái)?shù)。因此,該數(shù)組對(duì)象的大小為 3。
此方法也適用于對(duì)象。如果我們想初始化一個(gè)由三個(gè)字符串組成的數(shù)組,我們會(huì)這樣做:
int[] stringArray = {"zelda", "link", "ganon"};
Java 也允許我們使用new關(guān)鍵字來初始化數(shù)組:
int[] intArray = new int[]{13, 14, 15};
int[] stringArray = new String[]{"zelda", "link", "ganon"};
它的工作方式相同。
注意:如果您要?jiǎng)?chuàng)建一個(gè)返回初始化數(shù)組的方法,則必須使用new帶有花括號(hào)的關(guān)鍵字。在方法中返回?cái)?shù)組時(shí),單獨(dú)的花括號(hào)不起作用:
public String[] getNames() {
return new String[]{"zelda", "link", "ganon"}; // Works
}
public String[] getNames() {
return {"zelda", "link", "ganon"}; // Doesn't work
}
如果您要聲明和初始化一個(gè)整數(shù)數(shù)組,您可以選擇使用IntStreamJava 接口:
int[] intArray = IntStream.range(1, 11).toArray();
上面的代碼創(chuàng)建了一個(gè)由十個(gè)整數(shù)組成的數(shù)組,其中包含數(shù)字 1 到 10:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
該IntStream接口有一個(gè)range()將序列的開頭和結(jié)尾作為參數(shù)的方法。請(qǐng)記住,第二個(gè)參數(shù)不包括在內(nèi),而第一個(gè)參數(shù)是。
然后我們使用methodtoArray()方法將其轉(zhuǎn)換為數(shù)組。
注意: IntStream只是可用于創(chuàng)建范圍的少數(shù)類之一。您也可以在這些示例中的任何一個(gè)中使用 aDoubleStream或LongStream。
如果您想覆蓋該特征,并包含最后一個(gè)元素,您可以使用IntStream.rangeClosed():
int[] intArray = IntStream.rangeClosed(1, 10).toArray();
這將產(chǎn)生一個(gè)包含 10 個(gè)整數(shù)的數(shù)組,從 1 到 10:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
該IntStream.of()方法的功能與聲明具有一定數(shù)量值的數(shù)組非常相似,例如:
int[] intArray = new int[]{6, 2, 4, 5, 7};
在這里,我們指定調(diào)用中的元素of():
int[] intArray = IntStream.of(6, 2, 4, 5, 7).toArray();
這將生成一個(gè)保留元素順序的數(shù)組:
[6, 2, 4, 5, 7]
或者,您甚至可以sorted()在此調(diào)用方法,以便在初始化數(shù)組時(shí)對(duì)其進(jìn)行排序:
int[] intArray = IntStream.of(6, 2, 4, 5, 7).sorted().toArray();
這導(dǎo)致具有以下元素順序的數(shù)組:
[2, 4, 5, 6, 7]
可用于初始化數(shù)組的最強(qiáng)大的技術(shù)之一是使用for循環(huán)使用一些值對(duì)其進(jìn)行初始化。
讓我們使用一個(gè)循環(huán)來初始化一個(gè)值為 0 到 9 的整數(shù)數(shù)組:
int[] intAray = new int[10];
for (int i = 0; i < intArray.length; i++) {
int_array[i] = i;
}
這與以下任何較短的選項(xiàng)相同:
int[] intArray = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] intArray = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] intArray = IntStream.rangeClosed(0, 9).toArray();
當(dāng)您有更復(fù)雜的邏輯來確定數(shù)組元素的值時(shí),循環(huán)比其他方法更理想。
例如,通過for循環(huán)語句,我們可以做一些事情,比如在偶數(shù)索引處制作兩倍大的元素:
int[] intArray = new int[10];
for (int i = 0; i < intArray.length; i++) {
if (i % 2 == 0) {
int_array[i] = i * 2;
} else {
int_array[i] = i;
}
}
在本文中,我們發(fā)現(xiàn)了在 Java 中聲明和初始化數(shù)組的不同方式和方法。我們使用花括號(hào){}、new關(guān)鍵字和for循環(huán)來初始化 Java 中的數(shù)組,以便您在不同情況下有多種選擇!
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)