第四章:數(shù)組與方法——數(shù)組的傳遞與引用

本章目標

  • 掌握數(shù)組的引用傳遞
  • 可以使用方法接收或返回一個數(shù)組
  • 了解Java對數(shù)組的操作支持

1犬庇、接收和返回數(shù)組

一個方法可以接收一個數(shù)組,也可以返回一個數(shù)組谅猾,如果方法接收一個數(shù)組的話抗果,則此方法對數(shù)組所做的方法將全部被保留下來踢械。

public class ArrayRefDemo01{  
    public static void main(String args[]){
        int temp[] = {1,3,5} ;      // 利用靜態(tài)初始化方式定義數(shù)組
        fun(temp) ;                 // 傳遞數(shù)組
        for(int i=0;i<temp.length;i++){
            System.out.print(temp[i] + "、") ;
        }
    }
    public static void fun(int x[]){    // 接收整型數(shù)組的引用
        x[0] = 6 ;          // 修改第一個元素
    }
};
輸出結(jié)果:6绽诚、3典徊、5

方法除了可以接收數(shù)組之外杭煎,也可以通過返回一個數(shù)組,只需要在返回值類型上宫峦,明確地聲明出返回的類型是數(shù)組即可岔帽。

public class ArrayRefDemo02{
    public static void main(String args[]){
        int temp[] = fun() ;        // 通過方法實例化數(shù)組
        print(temp) ;               // 打印數(shù)組內(nèi)容
    }
    public static void print(int x[]){
        for(int i=0;i<x.length;i++){
            System.out.print(x[i] + "、") ;
        }
    }
    public static int[] fun(){  // 返回一個數(shù)組
        int ss[] = {1,3,5,7,9} ;    // 定義一個數(shù)組
        return ss ;
    }
};
輸出結(jié)果:1导绷、3犀勒、5、7妥曲、9

2贾费、范例

2.1、定義排序方法

public class ArrayRefDemo03{
    public static void main(String args[]){
        int score[] = {67,89,87,69,90,100,75,90} ;  // 定義整型數(shù)組
        int age[] = {31,30,18,17,8,9,1,39} ;        // 定義整型數(shù)組
        sort(score) ;       // 數(shù)組排序
        print(score) ;      // 數(shù)組打印
        System.out.println("\n---------------------------") ;
        sort(age) ;         // 數(shù)組排序
        print(age) ;        // 數(shù)組打印
    }
    public static void sort(int temp[]){        // 執(zhí)行排序操作
        for(int i=1;i<temp.length;i++){
            for(int j=0;j<temp.length;j++){
                if(temp[i]<temp[j]){
                    int x = temp[i] ;
                    temp[i] = temp[j] ;
                    temp[j] = x ;
                }
            }
        }
    }
    public static void print(int temp[]){       // 輸出數(shù)組內(nèi)容
        for(int i=0;i<temp.length;i++){
            System.out.print(temp[i] + "\t") ;
        }
    }
};
輸出結(jié)果:
67  69  75  87  89  90  90  100
---------------------------
1  8  9  17  18  30  31  39

以上只是完成了整型數(shù)組的排序操作檐盟,如果一個操作中及要求可以排序整型也可以排序浮點型等各種數(shù)據(jù)褂萧,如果分別實現(xiàn)則會比較麻煩,所以在Java中為了操作數(shù)組方便葵萎,提供了一個支持导犹。

public class ArrayRefDemo04{
    public static void main(String args[]){
        int score[] = {67,89,87,69,90,100,75,90} ;  // 定義整型數(shù)組
        int age[] = {31,30,18,17,8,9,1,39} ;        // 定義整型數(shù)組
        java.util.Arrays.sort(score) ;      // 數(shù)組排序
        print(score) ;      // 數(shù)組打印
        System.out.println("\n---------------------------") ;
        java.util.Arrays.sort(age) ;            // 數(shù)組排序
        print(age) ;        // 數(shù)組打印
    }
    public static void print(int temp[]){       // 輸出數(shù)組內(nèi)容
        for(int i=0;i<temp.length;i++){
            System.out.print(temp[i] + "\t") ;
        }
    }
};
輸出結(jié)果:
67  69  75  87  89  90  90  100
---------------------------
1  8  9  17  18  30  31  39

2.2、定義排序方法

可以將一個數(shù)組中的指定位置的內(nèi)容拷貝給另外一個數(shù)組羡忘,如果谎痢,此時要設(shè)計方法的話,則此方法中要傳遞多少個參數(shù)呢卷雕?

  • 源數(shù)組
  • 源數(shù)組的開始點
  • 目標數(shù)組
  • 目標數(shù)組的開始點
  • 拷貝的長度

那么节猿,按照以上的思路,完成一個拷貝的操作

public class ArrayRefDemo05{
    public static void main(String args[]){
        int i1[] = {1,2,3,4,5,6,7,8,9} ;        // 源數(shù)組
        int i2[] = {11,22,33,44,55,66,77,88,99} ;// 目標數(shù)組
        copy(i1,3,i2,1,3) ; // 調(diào)用拷貝方法
        print(i2) ;
    }
    // 源數(shù)組名稱漫雕,源數(shù)組開始點滨嘱,目標數(shù)組名稱,目標數(shù)組開始點浸间,拷貝長度
    public static void copy(int s[],int s1,int o[],int s2,int len){
        for(int i=0;i<len;i++){
            o[s2+i] = s[s1+i] ; // 進行拷貝操作
        }
    }
    public static void print(int temp[]){       // 輸出數(shù)組內(nèi)容
        for(int i=0;i<temp.length;i++){
            System.out.print(temp[i] + "\t") ;
        }
    }
};
輸出結(jié)果:
11  4  5  6  55  66  77  88  99

對于這樣的拷貝功能太雨,在Java中也是有所支持的,直接使用Java提供的一個操作語句即可魁蒜。

public class ArrayRefDemo06{
    public static void main(String args[]){
        int i1[] = {1,2,3,4,5,6,7,8,9} ;        // 源數(shù)組
        int i2[] = {11,22,33,44,55,66,77,88,99} ;// 目標數(shù)組
        System.arraycopy(i1,3,i2,1,3) ; // 調(diào)用Java中對數(shù)組支持的拷貝方法
        print(i2) ;
    }
    public static void print(int temp[]){       // 輸出數(shù)組內(nèi)容
        for(int i=0;i<temp.length;i++){
            System.out.print(temp[i] + "\t") ;
        }
    }
};
輸出結(jié)果:
11  4  5  6  55  66  77  88  99

3躺彬、總結(jié)

  • 數(shù)組的引用傳遞傳遞的就是堆內(nèi)存的使用權(quán),可以將一個數(shù)組傳遞到方法之中梅惯,傳遞的時候不需要寫上“[ ]”宪拥,直接寫名字即可。
  • 方法中對數(shù)組所做的修改都會被保留下來铣减。
  • 在Java中提供了一些對數(shù)組操作支持的方法她君,后續(xù)會進行介紹。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末葫哗,一起剝皮案震驚了整個濱河市缔刹,隨后出現(xiàn)的幾起案子球涛,更是在濱河造成了極大的恐慌,老刑警劉巖校镐,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亿扁,死亡現(xiàn)場離奇詭異,居然都是意外死亡鸟廓,警方通過查閱死者的電腦和手機从祝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來引谜,“玉大人牍陌,你說我怎么就攤上這事≡毖剩” “怎么了毒涧?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長贝室。 經(jīng)常有香客問我契讲,道長,這世上最難降的妖魔是什么滑频? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任怀泊,我火速辦了婚禮,結(jié)果婚禮上误趴,老公的妹妹穿的比我還像新娘。我一直安慰自己务傲,他們只是感情好凉当,可當我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著售葡,像睡著了一般看杭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挟伙,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天楼雹,我揣著相機與錄音,去河邊找鬼尖阔。 笑死贮缅,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的介却。 我是一名探鬼主播谴供,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼齿坷!你這毒婦竟也來了桂肌?” 一聲冷哼從身側(cè)響起数焊,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎崎场,沒想到半個月后佩耳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡谭跨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年干厚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饺蚊。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡萍诱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出污呼,到底是詐尸還是另有隱情裕坊,我是刑警寧澤,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布燕酷,位于F島的核電站籍凝,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏苗缩。R本人自食惡果不足惜饵蒂,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酱讶。 院中可真熱鬧退盯,春花似錦、人聲如沸泻肯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽灶挟。三九已至琉朽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間稚铣,已是汗流浹背箱叁。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惕医,地道東北人耕漱。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像抬伺,于是被迫代替她去往敵國和親孤个。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內(nèi)容

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,171評論 30 470
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,239評論 0 4
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法沛简,類相關(guān)的語法齐鲤,內(nèi)部類的語法斥废,繼承相關(guān)的語法,異常的語法给郊,線程的語...
    子非魚_t_閱讀 31,669評論 18 399
  • 究竟是什么動作在酒后做起來這么危險呢?咱們先來看個栗子: 老王一直被朋友同事奉為酒場高手炭庙,這么多年來饲窿,有酒必喝,逢...
    朵小陽閱讀 315評論 0 0
  • D1(7月9日焕蹄,星期六) 脫離了大城市的滾滾紅塵逾雄,亢奮地奔向遠方……其實前一天從單位下班,心情已經(jīng)大好腻脏,靈魂重新附...
    lm025x6kg70閱讀 821評論 1 3