在AP CS A Exam中,只考察兩種數(shù)組(arrays)類型:
一維數(shù)組(1-dimensional arrays)和二維數(shù)組(2-dimensional arrays),下面我們分別來(lái)仔細(xì)看一下具體考察的內(nèi)容。
1. 1-dimensional arrays
所謂數(shù)組(arrays)就是用來(lái)存儲(chǔ)一個(gè)元素個(gè)數(shù)固定且元素類型相同的有序集合。
一維數(shù)組里面的元素(elements)可以是原始類型(primitive types),也可以是對(duì)象(objects),比如: int[] 和 double[] 就屬于原始類型數(shù)組(arrays of primitive types);String[] 就屬于對(duì)象數(shù)組(arrays of objects)。
在同一個(gè)數(shù)組中,所有元素都必須是同一種類型,比如都是int型,或者都是double型。
我們可以使用關(guān)鍵詞new來(lái)給數(shù)組進(jìn)行初始化,比如:
int[] arr = new int[10];
上述代碼聲明了一個(gè)int型數(shù)組變量arr,并進(jìn)行了初始化。
這里的數(shù)字10就是這個(gè)數(shù)組中的元素的個(gè)數(shù),或者稱作這個(gè)數(shù)組的長(zhǎng)度(使用arr.length獲取數(shù)組arr的長(zhǎng)度)。
需要特別注意的是,數(shù)組的長(zhǎng)度一旦確定,就不能夠再變化,這是和動(dòng)態(tài)數(shù)組(ArrayList)的區(qū)別之一。
另外,當(dāng)我們使用上述代碼進(jìn)行數(shù)組的初始化之后,數(shù)組里面的元素是有初始值的,初始值是0;如果是double型的一維數(shù)組,元素的初始值就是0.0;如果是String型的一維數(shù)組,元素的初始值就是null。
當(dāng)然,如果你想要改變數(shù)組中元素的初始值,也可以再給元素進(jìn)行賦值操作。
我們還可以使用另外一種簡(jiǎn)捷的方法對(duì)數(shù)組進(jìn)行初始化,比如:
int[] arr = {1, 2, 3};
這樣我們就同時(shí)完成了初始化和給數(shù)組元素進(jìn)行賦值的操作。
如果我們需要對(duì)數(shù)組中的某個(gè)元素進(jìn)行訪問(wèn),我們就需要用到數(shù)組的索引(index),所謂索引,就是每個(gè)元素的序號(hào)。
每個(gè)數(shù)組的index都是從0開始的;如果一個(gè)數(shù)組的長(zhǎng)度是n,那么它的 index 就是從0到n-1。
如果程序使用了一個(gè)非法的index來(lái)訪問(wèn)一個(gè)數(shù)組的元素,程序運(yùn)行時(shí)就會(huì)出現(xiàn)異常(ArrayIndexOutOfBoundsException)。
最后,考生還需要掌握如何使循環(huán)(loops)去遍歷(traverse)數(shù)組中的每一個(gè)元素。
2. 2-dimensional arrays
二維數(shù)組(2-dimensional arrays)里的元素是一維數(shù)組,這些一維數(shù)組的長(zhǎng)度都相等,而且都是同一種數(shù)據(jù)類型。
所以,我們可以將二維數(shù)組看做是一個(gè)長(zhǎng)方形矩陣,比如:
int[][] arr = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
{10, 11, 12}};
這里的二維數(shù)組中有4個(gè)元素,這4個(gè)元素都是int型的一維數(shù)組,每個(gè)一維數(shù)組都由3個(gè)int型數(shù)據(jù)元素組成。
于是,我們就可以使用如下矩陣表示這個(gè)二維數(shù)組:
觀察上表我們可以看到,這是一個(gè)4*3的矩陣,4代表的是行數(shù)(the number of rows),3代表的是列數(shù)(the number of columns)。
所以一個(gè)二維數(shù)組的長(zhǎng)度(arr.length)既可以看做是這個(gè)二維數(shù)組中所包含的一維數(shù)組的個(gè)數(shù),也可以看做是這個(gè)二維數(shù)組矩陣的行數(shù)。
而列數(shù)實(shí)際上就是每個(gè)一維數(shù)組的長(zhǎng)度,所以我們可以通過(guò)訪問(wèn)第一個(gè)元素,來(lái)獲得這個(gè)二維數(shù)組的列數(shù),在這里就是arr[0].length。
對(duì)于上面的二維數(shù)組來(lái)說(shuō),如果我們想要訪問(wèn)矩陣中的某一個(gè)元素,我們需要知道這個(gè)元素所在的行索引和列索引,比如arr[1][2]訪問(wèn)的就是行索引為1、列索引為2的那個(gè)元素,在這里就是整數(shù)6。
當(dāng)然我們也可以只是用行索引來(lái)訪問(wèn)一個(gè)二維數(shù)組的某個(gè)一維數(shù)組,比如,在這里arr[2]指向的就是{7, 8, 9}這個(gè)一維數(shù)組。
注意,數(shù)組變量是參數(shù)類型(reference type)。
在考試中,考生需要能夠從二維數(shù)組中通過(guò)行索引獲取其中某個(gè)一維數(shù)組,并將這個(gè)一維數(shù)組賦值給另外一個(gè)一維數(shù)組變量,比如我們可以將上面的二維數(shù)組中的第二個(gè)元素賦值給一個(gè)新的一維數(shù)組:
int[] arrNew = arr[1];
上述代碼就會(huì)將{4, 5, 6}這個(gè)一維數(shù)組賦值給arrNew這個(gè)新的一維數(shù)組。
當(dāng)然,考生還要能夠?qū)⒍S數(shù)組中的某一行(一維數(shù)組)作為參數(shù)進(jìn)行傳遞,以及能夠通過(guò)循環(huán)去遍歷(traverse)每一行的每一個(gè)元素。
最后給大家留一個(gè)小問(wèn)題:
String[] arr = new String[3];
請(qǐng)問(wèn)上面這個(gè)數(shù)組中的3個(gè)元素的值分別是什么?
以上就是關(guān)于【Arrays - AP CS A 考點(diǎn)總結(jié) ⑦】的解答,如需了解學(xué)校/賽事/課程動(dòng)態(tài),可至翰林教育官網(wǎng)獲取更多信息。
往期文章閱讀推薦:
2027 AP考試迎來(lái)“史詩(shī)級(jí)”改革!全球分卷/機(jī)考落地/考綱重寫...
新賽季AP如何“彎道超車”?拒絕無(wú)效內(nèi)卷!AP科學(xué)選課指南來(lái)了!

? 2026. All Rights Reserved. 滬ICP備2023009024號(hào)-1