第十五天 Java新特性對數組的支持,本章總結,習題

 

1.1 Java新特性對數組的支持

1.1.1 Java新特性——可變參數

在調用一個方法時,必須根據方法的定義傳遞指定的參數,但是JDK1.5之後產生了新的概念——可變參數,即方法中可以就接受的參數不再是固定值,而是隨着需要傳遞的,可變參數的定義格式如下:

返回值類型 方法名稱(類型 參數名稱){}

向方法中傳遞可變參數之後,其中的參數是以數組的形式保存下來的。

使用可變參數定義方法:

class NewDemo01{

public static void main(String[] args) {

System.out.print("不傳遞參數的fun():");

fun();

System.out.print("\n傳遞一個參數fun(1):");

fun(1);

System.out.print("\n傳遞五個參數fun(1,2,3,4,5)");

fun(1,2,3,4,5);

}

public static void fun(int...arg){

for (int i = 0; i < arg.length; i++) {

System.out.print(arg[i] + "、");

}

}

}

運行結果:

不傳遞參數的fun():

傳遞一個參數fun(1):1、

傳遞五個參數fun(1,2,3,4,5)1、2、3、4、5、

1.1.2 Java新特性——foreach輸出

數組的輸出一般都會使用for循環,但在JDK1.5後爲了方便數組的輸出,提供了一種foreach語法,此語法的使用格式如下:

for(數據類型 變量名稱:數組名稱){

……

}

使用foreach語法輸出數組內容:

class NewDemo02{

public static void main(String[] args) {

System.out.print("不傳遞參數的fun():");

fun();

System.out.print("\n傳遞一個參數fun(1):");

fun(1);

System.out.print("\n傳遞五個參數fun(1,2,3,4,5)");

fun(1,2,3,4,5);

}

public static void fun(int...arg){

for(int x:arg){

System.out.print(x + "、");

}

}

}

運行結果:

不傳遞參數的fun():

傳遞一個參數fun(1):1、

傳遞五個參數fun(1,2,3,4,5)1、2、3、4、5、

1.2 本章要點

1、數組是由一組相同的類型的變量所組成的數據類型,他們是以一個共同的名稱來表示的。數組按存放元素的複雜程度分爲一維、二維及多維數組。

2、使用Java中的數組必須經過聲明數組和開闢內存給該數組兩個步驟。聲明數組時會在棧內存開闢空間,只開闢棧空間的數組是無法使用的,必須有指向的堆內存空間才能夠使用,可以使用new關鍵字開闢堆內存空間,同時指定開闢的空間大小。

3、Java中要取得數組的長度,可以利用.length來完成。

4、數組訪問時要使用下標,如果下標的訪問超過了數組的範圍,則會出現數組越界異常。

5、Java允許二維數組中每行的元素個數均不相同。

6、方法是一段可重複調用的代碼段,在本章中因爲方法可以由主方法直接調用,所以要加入public static 關鍵字修飾。

7、方法的重載爲方法名稱相同,參數的類型或個數不同。

8、數組的傳遞屬於引用數據類型的傳遞,傳遞的是堆內存地址的使用權,一個數組可以有多個名稱指向同一個堆內存空間,每一個名稱都可以修改堆內存中的內容。

9、Java新特性中提供了可變參數,這樣在傳遞參數時就可以不受參數的個數限制,全部的參數將以數組的形式保存下來。

10、foreachJava中的新特性,主要作用是方便的輸出數組中的內容。

1.3 習題

1.3.1 編寫程序求1!+2!+……+30!的和並顯示,要求使用方法完成。

class test01{

public static void main(String[] args) {

aa();

}

public static void aa(){

int sum = 0;

for (int i = 1; i <= 20; i++) {

int num = 1;

for (int j = 1; j <= i; j++) {

num = num * j;

}

sum += num;

}

System.out.println(sum);

}

}

1.3.2 定義一個由整數組成的數組,要求求出其中的奇數個數和偶數個數。

class test02{

public static void main(String[] args) {

int sz[] = {1,2,3,4,5,6,7,8,9};

int JS = 0;

int OS = 0;

for (int i = 0; i < sz.length; i++) {

if (sz[i]%2 == 0) {

OS++;

}else {

JS++;

}

}

System.out.println("偶數有" + OS + "個。");

System.out.println("奇數有" + JS + "個。");

}

}

1.3.3 現在有如下的一個數組:

int oldArr[] = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};

要求將以上數組中值爲0的項去掉,將不爲0的值存入一個新的數組,生成的新數組爲:

int newArr[] = {1,3,4,5,6,6,5,4,7,6,7,5};

class test03{

public static void main(String[] args) {

int oldArr[] = {1,2,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};

int a = 0;

int tempArr[] = new int[oldArr.length];

for (int i = 0, j = 0; i < oldArr.length; i++) {

if (oldArr[i] != 0) {

tempArr[j++] = oldArr[i];

a++;

}

}

int newArr[] = new int[a];

for (int i = 0; i < newArr.length; i++) {

newArr[i] = tempArr[i];

System.out.print(newArr[i] + " ");

}

}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章